我有一个.txt文件,该文件已经采用逗号分隔值(csv)格式。我想将.txt文件中的数据作为表格添加到打开的Excel工作簿中。
这是我打开工作簿的方式:
var xlApp = new Excel.Application { Visible = false };
Excel.Workbook newWorkbook = xlApp.Workbooks.Add(Type.Missing);
这就是我尝试将.txt文件添加到工作簿的方法:
string txt2xls = Globals.HomeDir + "\\JSL\\Data1" + ".txt";
string csv2xls = Globals.HomeDir + "\\JSL\\Data1" + ".csv";
if (File.Exists(csv2xls))
File.Delete(csv2xls);
File.Move(txt2xls, Path.ChangeExtension(txt2xls, ".csv"));
newWorkbook.Sheets.Add(csv2xls, Type.Missing, Type.Missing, Type.Missing);
最后一行给我一个错误(HRESULT:0x800A03EC)。我该怎么解决这个问题?谢谢!
Excel中的CSV文件始终只能包含一个工作表。您不能将其他工作表添加为CSV。您将必须单独打开CSV作为另一个工作簿,然后将工作表从该工作簿复制到多表xlsx工作簿newWorkbook
。
使用Worksheet.Copy
方法如如何:以编程方式复制工作表和此处所述。
var xlApp = new Excel.Application { Visible = false };
Excel.Workbook newWorkbook = xlApp.Workbooks.Add(Type.Missing);
Excel.Workbook csvWorkbook = xlApp.Workbooks.Open(csv2xls);
Excel.Worksheet worksheetCSV = ((Excel.Worksheet)csvWorkbook.Worksheets[1]);
Excel.Worksheet targetWorksheet = ((Excel.Worksheet)newWorkbook.Worksheets[1]);
worksheetCSV.Copy(targetWorksheet);
还标明
如果您未指定“之前”或“之后”,Microsoft Office Excel将创建一个包含复制的工作表的新工作簿。
所以你可以做
worksheetCSV.Copy(Type.Missing, Type.Missing);
无需直接添加newWorkbook
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句