2012-03-06 21 views
2

タブ区切りの.datファイルをExcelで開き、.xlsファイルとして保存しようとしています。Excelで.dat(タブ区切りファイル)を開き、.xlsファイルとして保存

これまでのところ、ファイルを読み込んで.xlsファイルとして保存できますが、何らかの理由ですべての値が最初の列にあり、タブで区切られません。

(私は私のプログラムずにExcelでファイルを開く場合は、それが完全にタブ区切り)

これらは私がファイルを開いて再保存するために使用しています2行のコードです。

xlWorkBook = xlApp.Workbooks.Open(f, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); 
xlWorkBook.SaveAs(filename + ".xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue); 
+0

それを機能させましたか? – Andrew

答えて

2

この質問のための修正:

xlWorkBook = xlApp.Workbooks.Open(F、0、真の、5、 ""、 ""、真、 Microsoft.Office.Interop.Excel.XlPlatform.xlWindows、 "\ t"、false、 false、0、true、1、0); xlWorkBook.SaveAs(ファイル名+ ".xls"、 Excel.XlFileFormat.xlWorkbookNormal、misValue、misValue、misValue、 misValue、Excel.XlSaveAsAccessMode.xlExclusive、misValue、misValue、 misValue、misValue、misValue);

xlApp.Worksbooks.Open()メソッドの4番目の引数は "1"の値を使用すると、ファイルがタブで区切られていることを前提とした "Format"です。

0

FileHelpersはどうですか?

私はこのアプローチをたくさん使い、素晴らしい素晴らしいライブラリを見つけました。

区切り文字と固定長のファイルを処理し、ExcelStorageクラスを使用してExcelに書き戻すことができます。

私はC#]を使用していないが、私はあなたがここに詳述Workbooks.OpenText方法のようなものを使用する必要があります考えてい
1

:それは何か

など、区切り文字を指定することができます http://msdn.microsoft.com/en-us/library/bb223513%28v=office.12%29.aspx

xlWorkBook = xlApp.Workbooks.OpenText (filename:="DATA.TXT", dataType:=xlDelimited, tab:=True); 

これはExcel 2007 Developerのリファレンスですが、C#にも同様の方法がありますか?ちょうど推測。

+0

これは動作しません。xlWorkBook(上記のコードを壊す)を返すだけでなく、テキストを区切って別の列に入れることもありません。 –

0

このsould作品:

using Excel = Microsoft.Office.Interop.Excel; 
using Microsoft.Office; 
using Microsoft.Office.Core; 

     Excel.Application xlApp; 
     Excel.Workbook xlWorkBook; 
     Excel.Worksheet xlWorkSheet; 
     object misValue = System.Reflection.Missing.Value; 
     xlApp = new Excel.Application(); 
     xlApp.Workbooks.OpenText(@"c:\data.txt", Microsoft.Office.Interop.Excel.XlTextParsingType.xlDelimited); 
     xlApp.Visible = true; 
関連する問題