Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将Excel.工作簿内容从C#应用程序输出到现有Excel文件中?_C#_Excel_Output - Fatal编程技术网

如何将Excel.工作簿内容从C#应用程序输出到现有Excel文件中?

如何将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文件“D:\MyTests\ExcelTests\template.xlsm”,其中没有数据,只有VBA代码,我的C代码需要在那里输出工作簿数据。通常我输出工作簿数据如下:

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