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