【发布时间】:2019-01-14 04:53:30
【问题描述】:
我想合并多个工作簿中的所有工作表并将它们保存在一个 Excel 文件中。我正在尝试复制一个工作簿中的所有工作表,然后将工作簿保存到文件中。问题是 - 只有最后一张纸保存在文件中。下面是一些示例代码。
public static void ExportSheets(string documentFilePath, List<IWorkbook> workbooks)
{
if (workbooks.Count > 1)
{
var destinationSourceBook = workbooks[0];
for (int i = 1; i < workbooks.Count; i++)
{
var sourceWorkBook = workbooks[i];
for (int j = 0; j < sourceWorkBook.Sheets.Count; j++)
{
sourceWorkBook.Sheets[j].CopyAfter(destinationSourceBook.Sheets[destinationSourceBook.Sheets.Count - 1]);
}
}
destinationSourceBook.SaveAs(documentFilePath, FileFormat.OpenXMLWorkbook);
}
else if (workbooks.Count == 1)
{
workbooks[0].SaveAs(documentFilePath, FileFormat.OpenXMLWorkbook);
}
}
在调试时,我可以看到工作表被添加到destinationSourceBook.Sheets 集合中,但保存的Excel 文件中只有最后一个工作表。这样做的正确方法是什么?
谢谢
【问题讨论】:
标签: c# spreadsheetgear