2012-03-06 93 views
2

我試圖在Excel中打開一個.dat文件,它是製表符分隔的,然後將其保存爲.xls文件。在Excel中打開.dat(製表符分隔的文件),另存爲.xls

到目前爲止,我可以讀取文件並將其保存爲.xls文件,但由於某些原因,所有值都位於第一列,並且它沒有製表符分隔它們。

(如果我打開在Excel文件沒有我的節目,它完美製表劃)

這些是兩行代碼,我使用打開並重新保存文件。

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 2012-03-08 18:27:10

回答

2

對於這個問題的修復:

xlWorkBook = xlApp.Workbooks.Open(F,0,true,則如圖5所示, 「」, 「」,真, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows,「\ t」,false, false,0,true,1,0); xlWorkBook.SaveAs(文件名+「.xls」, 錯誤值,misValue,misValue);

在xlApp.Worksbooks.Open()方法中,第四個參數是「格式」,如果使用值'1',它將假定該文件是製表符分隔並相應地打開它。

0

如何使用FileHelpers

我已經使用了這個方法很多,並且發現它是一個超級漂亮的庫。

它處理分隔和固定長度的文件,您可以使用ExcelStorage類寫回到Excel。

1

我不使用C#,但我想你可能需要使用類似的方法Workbooks.OpenText這裏詳述: 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開發人員參考,但也許有類似的方法在C#?只是一個猜測。

+0

這不起作用,它不僅不會返回一個xlWorkBook(它會破壞上面的代碼),而且它不會分隔文本並將它們放在不同的列中。 – 2012-03-06 17:52:37

0

此高度重視和工作:

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; 
相關問題