【问题标题】:OpenOfficeXML: Copy worksheet from one work book to another打开 Office XML:将工作表从一个工作簿复制到另一个工作簿
【发布时间】:2014-12-09 05:04:39
【问题描述】:
我们正在使用 OpenOfficeXML,到目前为止运行良好。我们现在有一个场景,我们需要从不同的工作簿中复制多个工作表并将它们放入一个工作簿中(作为多个工作表)。
1.Office Open XML 中不存在该选项
2.当我们尝试使用Inner xml从一个工作簿复制到另一个工作簿时,在运行应用程序时不会抛出错误,但在打开excel文件时会抛出损坏的工作表错误。
xlpackage.Workbook.Worksheets["Sheet1"].WorksheetXml.InnerXml = xcelNewWorkSheet.WorksheetXml.InnerXml;)
【问题讨论】:
标签:
excel
openxml
excelpackage
【解决方案1】:
可能这个功能是在 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);
【解决方案2】:
没有办法(对不起)这对你有用,就像你在这里展示的那样简单。
WorkSheet 不是一个孤立的实例。它包含对共享字符串表、样式、引用元素等的引用。
我并不是说它不能做到——当然它可以。但是您需要将您的期望设置为比您在这里所做的要高得多的复杂性。
对于您需要复制的工作表,您需要识别和分析对包其他部分的所有引用。然后,您还需要复制它们并将它们合并到您想要将它们复制到的电子表格包中已经存在的样式、格式、SharedStrings 表中。
并且在现有的目标电子表格中,您需要创建对您正在添加的新内容的所有必要引用。
您也可以尝试找到一个可以帮助您解决此问题的 3rd 方工具 - 但其他人将不得不使用这些工具的名称 - 我不知道。