在Excel中打开.dat(制表符分隔文件),另存为.xls

时间:2012-03-06 16:54:48

标签: c# .net excel interop tab-delimited

我正在尝试在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);

4 个答案:

答案 0 :(得分:2)

我不使用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 Developer参考,但也许在C#中有类似的方法?只是一个猜测。

答案 1 :(得分: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);

在xlApp.Worksbooks.Open()方法中,第四个arg是“Format”,如果使用值“1”,它将假定该文件是制表符分隔符并相应地打开它。

答案 2 :(得分:0)

如何使用FileHelpers

我经常使用这种方法,并发现它是一个非常好的库。

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

答案 3 :(得分: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;