2012-03-06 51 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; 
相关问题