在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); 

这个问题的解决方法:

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);

在xlApp.Worksbooks.Open()方法中,第四个参数是“格式”,如果使用值“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#中有一个类似的方法? 只是一个猜测。

如何使用FileHelpers ?

我已经使用了这个方法,并且发现它是一个超级好的库。

它处理分隔和固定长度的文件,您可以使用ExcelStorage类写回到Excel。

这可以工作:

 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;