OpenOfficeXML:将工作表从一个工作簿复制到另一个工作表

我们正在使用OpenOfficeXML,到目前为止运行良好。 我们现在有一个场景,我们需要复制不同工作簿中的多个工作表,并将它们放入单个工作簿(作为多个工作表)。

1. Office Open XML中没有此选项2.当我们尝试使用从一个工作簿到另一个工作簿的内部xml复制时,它不会在运行应用程序时抛出错误,而是在打开Excel文件时会抛出损坏的工作表错误。

xlpackage.Workbook.Worksheets["Sheet1"].WorksheetXml.InnerXml = xcelNewWorkSheet.WorksheetXml.InnerXml;) 

可能这个函数是在Jesper的anwser之后添加的:

 ExcelWorkbook wb = pk.Workbook; ExcelWorkbook wbRef = pkRef.Workbook; ExcelWorksheet wsRef = wbRef.Worksheets["Referentials"]; wb.Worksheets.Add("New Referentials", wsRef); 

OfficeOpenXml:公共ExcelWorksheet添加(string名称,ExcelWorksheet复制);

没有办法(对不起),这将适用于你像在这里介绍的简单的方法。

工作表不是一个孤立的实例。 它包含对共享string表格,样式,引用元素等的引用等等。

我不是说不能做到 – 自然是可以的。 但是,您需要将复杂性的预期设置得比您在这里完成的要复杂得多。

对于需要复制的工作表,您需要识别和分析对包装其他部分的所有参考。 然后,您需要复制这些文件,并将它们合并到要复制到的电子表格包中已有的样式,格式,SharedStrings表中。

在现有的目标电子表格中,您将需要创build所有必要的引用来添加新的内容。

你也可以尝试find一个第三方的工具来帮助你,但是其他人将不得不用这些工具的名字 – 我不知道。