如何将Excel.工作簿内容从C#应用程序输出到现有Excel文件中?
我有一个启用宏的Excel文件“D:\MyTests\ExcelTests\template.xlsm”,其中没有数据,只有VBA代码,我的C代码需要在那里输出工作簿数据。通常我输出工作簿数据如下:如何将Excel.工作簿内容从C#应用程序输出到现有Excel文件中?,c#,excel,output,C#,Excel,Output,我有一个启用宏的Excel文件“D:\MyTests\ExcelTests\template.xlsm”,其中没有数据,只有VBA代码,我的C代码需要在那里输出工作簿数据。通常我输出工作簿数据如下: Excel.Application application = new Excel.Application(); Excel.Workbook workbook = application.Workbooks.Add(); Excel.Workshee
Excel.Application application = new Excel.Application();
Excel.Workbook workbook = application.Workbooks.Add();
Excel.Worksheet worksheet = workbook.Sheets[1];
Excel.Worksheet worksheet2 = workbook.Sheets[2];
// populate worksheets with some data
DataTable2Worksheet(tableMain, worksheet, verSize);
DataTable2Worksheet(tableExtra, worksheet2, 0);
string fileName = @"D:\MyTests\ExcelTests\newFile";
if (File.Exists(fileName ))
{
File.Delete(fileName );
}
workbook.SaveAs(fileName);
workbook.Close();
Marshal.ReleaseComObject(application);
但这会创建一个新文件(不能以编程方式启用宏)。如果要将工作簿输出到现有文件
string existingFile = @"D:\MyTests\ExcelTests\template.xlsm"
方法
workbook.SaveAs(existingFile );
不行。那么,我应该怎么做呢?谢谢。将文件专门保存在:
谢谢,但它只是用同名的新文件替换了已有的文件——VBA宏现在不存在了。@Evgraph——这是完成您要求的任务的受支持的方法。我假设在保存时,宏在您的
现有文件中可用,如果是这样,这应该可以工作。
string existingFile = @"D:\MyTests\ExcelTests\template.xlsm"
workbook.SaveAs(existingFile, 52);