mar*_*ner 7 c# openxml openxml-sdk
我正在尝试使用openxml来生成自动excel文件.我面临的一个问题是使用excel的开放式xml对象模型来容纳我的对象模型.我必须明白我为工作表添加子元素的顺序很重要.
例如:
workSheet.Append(sheetViews);
workSheet.Append(columns);
workSheet.Append(sheetData);
workSheet.Append(mergeCells);
workSheet.Append(drawing);
Run Code Online (Sandbox Code Playgroud)
上面的排序不会给出任何错误.
但是以下内容:
workSheet.Append(sheetViews);
workSheet.Append(columns);
workSheet.Append(sheetData);
workSheet.Append(drawing);
workSheet.Append(mergeCells);
Run Code Online (Sandbox Code Playgroud)
给出错误
所以这不允许我随时创建一个绘图对象并将其附加到工作表中.这迫使我在使用它们之前创建这些元素.
谁能告诉我,我是否正确理解了这个问题?因为我相信我们应该能够打开任何excel文件,必要时为工作表创建一个新的子元素并附加它.但现在这可能会破坏这些元素应该被追加的顺序.
谢谢.
根据标准ECMA-376 Office Open XML文件格式,CT_Worksheet具有所需的顺序:

以下是崩溃的原因:
workSheet.Append(sheetViews);
workSheet.Append(columns);
workSheet.Append(sheetData);
workSheet.Append(drawing);
workSheet.Append(mergeCells);
Run Code Online (Sandbox Code Playgroud)
是因为你drawing 以前 mergeCells.只要你追加你的mergeCells 后代 drawing,你的代码应该可以正常工作.
注意:您可以在ECMA-376第3版第1部分(.zip) - > OfficeOpenXML-XMLSchema-Strict - > sml.xsd中找到完整的XSD .
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           2695 次  |  
        
|   最近记录:  |