2

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

1.Office Open XML 中不存在该选项 2.当我们尝试使用 Inner xml 从一个工作簿复制到另一个工作簿时,运行应用程序时不会抛出错误,但在打开 excel 文件时,会抛出损坏的工作表错误。

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

2 回答 2

3

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

ExcelWorkbook wb = pk.Workbook;
ExcelWorkbook wbRef = pkRef.Workbook;

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

OfficeOpenXml : public ExcelWorksheet Add(string Name, ExcelWorksheet Copy);

于 2016-03-10T10:57:23.587 回答
1

没有办法(抱歉)这对你有用,就像你在这里展示的那样简单。

WorkSheet 不是一个孤立的实例。它包含对共享字符串表、样式、引用元素等的引用,等等。

我并不是说它不能做到——当然它可以做到。但是您需要将您的期望设置为比您在这里所做的要高得多的复杂性。

对于您需要复制的工作表,您需要识别和分析对包其他部分的所有引用。然后,您还需要复制它们并将它们合并到您想要将它们复制到的电子表格包中已经存在的样式、格式、SharedStrings 表中。

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

您也可以尝试找到可以帮助您解决此问题的第 3 方工具 - 但其他人将不得不使用这些工具的名称 - 我不知道。

于 2014-10-21T19:08:42.623 回答