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