我正在尝试在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 :(得分: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)
答案 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;