gpt4 book ai didi

c# - Excel OpenXml Workbook 类中 xmlelements 的特定顺序

转载 作者:行者123 更新时间:2023-12-04 20:42:07 24 4
gpt4 key购买 nike

我通过 OpenXml 创建 PowerPoint 演示文稿。演示文稿的幻灯片丰富了嵌入的对象。通常嵌入 Excel 文档。除了准备好要嵌入的图像和文档外,Excel 还需要在 PowerPoint 中打开文档时向用户显示哪个区域的另一个信息。

可以通过添加 OleSize 将此信息添加到 Excel 工作簿中。上课到工作簿部分。请忽略此代码不会检查该片段是否存在,这肯定会导致问题。这只是一个简单的例子。

    var oleSize = new OleSize() {Reference = "A1:H12"};
var workbook = document.WorkbookPart.Workbook;
workbook.Append(oleSize);

当刚刚添加到工作簿类的 OpenXmlElements 列表的末尾时,Excel 将显示一个错误消息对话框,指出文件已损坏,无法修复。将此元素直接放在 PivotCache OpenXmlElement 之后确实可以作为一种解决方法。现在我体验到,当 OpenXmlElement 在 OleSize 之前可用时,Excel 也会引发该消息。

我找不到任何有关该特定类的 OpenXmlElements 订单必要性的信息。

任何提示都非常感谢。

最佳答案

您在答案中列出的顺序是正确的。在您引用的 OpenXML 规范文档中,有一个用于 Workbook 的 XSD(第 3936 页)。这表明该订单确实是强制性的,因为它被定义为 Sequence :

<xsd:complexType name="CT_Workbook">
<xsd:sequence>
<xsd:element name="fileVersion" type="CT_FileVersion" minOccurs="0" maxOccurs="1"/>
<xsd:element name="fileSharing" type="CT_FileSharing" minOccurs="0" maxOccurs="1"/>
<xsd:element name="workbookPr" type="CT_WorkbookPr" minOccurs="0" maxOccurs="1"/>
<xsd:element name="workbookProtection" type="CT_WorkbookProtection" minOccurs="0" maxOccurs="1"/>
<xsd:element name="bookViews" type="CT_BookViews" minOccurs="0" maxOccurs="1"/>
<xsd:element name="sheets" type="CT_Sheets" minOccurs="1" maxOccurs="1"/>
<xsd:element name="functionGroups" type="CT_FunctionGroups" minOccurs="0" maxOccurs="1"/>
<xsd:element name="externalReferences" type="CT_ExternalReferences" minOccurs="0" maxOccurs="1"/>
<xsd:element name="definedNames" type="CT_DefinedNames" minOccurs="0" maxOccurs="1"/>
<xsd:element name="calcPr" type="CT_CalcPr" minOccurs="0" maxOccurs="1"/>
<xsd:element name="oleSize" type="CT_OleSize" minOccurs="0" maxOccurs="1"/>
<xsd:element name="customWorkbookViews" type="CT_CustomWorkbookViews" minOccurs="0" maxOccurs="1"/>
<xsd:element name="pivotCaches" type="CT_PivotCaches" minOccurs="0" maxOccurs="1"/>
<xsd:element name="smartTagPr" type="CT_SmartTagPr" minOccurs="0" maxOccurs="1"/>
<xsd:element name="smartTagTypes" type="CT_SmartTagTypes" minOccurs="0" maxOccurs="1"/>
<xsd:element name="webPublishing" type="CT_WebPublishing" minOccurs="4129 0" maxOccurs="1"/>
<xsd:element name="fileRecoveryPr" type="CT_FileRecoveryPr" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="webPublishObjects" type="CT_WebPublishObjects" minOccurs="0" maxOccurs="1"/>
<xsd:element name="extLst" type="CT_ExtensionList" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="conformance" type="s:ST_ConformanceClass"/>
</xsd:complexType>

有兴趣我有答案 here它显示了将项目添加到文件中正确位置的一种方法。

关于c# - Excel OpenXml Workbook 类中 xmlelements 的特定顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30789700/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com