Office Open XML-冻结Excel中的窗格



我使用数据表生成一个Excel文件,并自定义输出。请在此处查看小提琴:https://jsfiddle.net/uo867xbm/

在第19行中,我附加了冻结标题的部分和第一列:

var freezePanes = '<sheetViews><sheetView tabSelected="1" workbookViewId="0"><pane xSplit="1" ySplit="1" topLeftCell="B2" activePane="bottomRight" state="frozen"/></sheetView></sheetViews>';

在LibreOffice中打开文件时效果很好,但Excel显示文件已损坏。该部分似乎符合OpenXML标准。

Excel对XML中元素的顺序很挑剔。在您的文件中,sheetViews之前有colssheetData,但根据ECMA规范,sheetViews应该在其他两个之前:

<xsd:complexType name="CT_Worksheet">
<xsd:sequence>
<xsd:element name="sheetPr" type="CT_SheetPr" minOccurs="0" maxOccurs="1"/>
<xsd:element name="dimension" type="CT_SheetDimension" minOccurs="0" maxOccurs="1"/>
<xsd:element name="sheetViews" type="CT_SheetViews" minOccurs="0" maxOccurs="1"/>
<xsd:element name="sheetFormatPr" type="CT_SheetFormatPr" minOccurs="0" maxOccurs="1"/>
<xsd:element name="cols" type="CT_Cols" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="sheetData" type="CT_SheetData" minOccurs="1" maxOccurs="1"/>

看起来你的字体也有类似的问题。那里(对于您拥有的元素(的预期顺序是namecolor然后是sz,但您拥有szname然后是color

最新更新