如何在XML Spreadsheet 2003中添加Excel Table?格式合规性咨询
关于XML Spreadsheet 2003中添加Excel Table及格式名称的问题
一、如何在XML Spreadsheet 2003中添加类似Excel Table的表格
XML Spreadsheet 2003格式(即你参考的微软文档定义的规范)本身并不原生支持Excel 2007及以后版本引入的Excel Table(ListObject)——该格式是Excel早期的纯XML规范,发布时还没有Table功能。要实现类似附图的表格效果,只能通过模拟样式和基础功能来实现:
1. 定义单元格样式
通过<Style>标签定义表头、数据行的样式,包括填充色、字体、边框等:
<Styles> <!-- 表头样式 --> <Style ss:ID="HeaderStyle"> <Font ss:Bold="1" ss:Color="#FFFFFF"/> <Interior ss:Color="#4F81BD" ss:Pattern="Solid"/> <Borders> <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/> <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/> <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/> <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/> </Borders> </Style> <!-- 数据行样式 --> <Style ss:ID="DataStyle"> <Borders> <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/> <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/> <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/> </Borders> </Style> <!-- 交替行样式(可选,模拟Table的条纹效果) --> <Style ss:ID="AlternateDataStyle"> <Interior ss:Color="#DCE6F1" ss:Pattern="Solid"/> <Borders> <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/> <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/> <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/> </Borders> </Style> </Styles>
2. 应用样式并添加筛选功能
在<Table>标签内,给表头单元格绑定HeaderStyle,数据行交替应用DataStyle和AlternateDataStyle,同时通过<AutoFilter>开启表头的筛选功能:
<Table ss:ExpandedColumnCount="3" ss:ExpandedRowCount="4" x:FullColumns="1" x:FullRows="1" ss:DefaultRowHeight="15"> <!-- 表头行 --> <Row> <Cell ss:StyleID="HeaderStyle"><Data ss:Type="String">姓名</Data></Cell> <Cell ss:StyleID="HeaderStyle"><Data ss:Type="String">部门</Data></Cell> <Cell ss:StyleID="HeaderStyle"><Data ss:Type="String">入职日期</Data></Cell> </Row> <!-- 开启表头筛选 --> <AutoFilter x:Range="R1C1:R1C3"/> <!-- 数据行 --> <Row> <Cell ss:StyleID="DataStyle"><Data ss:Type="String">张三</Data></Cell> <Cell ss:StyleID="DataStyle"><Data ss:Type="String">技术部</Data></Cell> <Cell ss:StyleID="DataStyle"><Data ss:Type="DateTime">2023-01-01T00:00:00</Data></Cell> </Row> <Row> <Cell ss:StyleID="AlternateDataStyle"><Data ss:Type="String">李四</Data></Cell> <Cell ss:StyleID="AlternateDataStyle"><Data ss:Type="String">市场部</Data></Cell> <Cell ss:StyleID="AlternateDataStyle"><Data ss:Type="DateTime">2023-02-15T00:00:00</Data></Cell> </Row> </Table>
这种方式能实现和Excel Table类似的视觉效果及筛选功能,但无法支持Table的高级特性(比如结构化引用、自动扩展等)。如果需要完整的Excel Table功能,建议改用Office Open XML格式(.xlsx),该格式原生支持Table元素。
二、XML Spreadsheet格式是否为“XML Excel”文件的正确格式
是的,你参考的XML Spreadsheet 2003就是微软官方定义的早期“XML Excel”文件格式,对应文件后缀通常为.xml,是Excel 2002和2003版本支持的纯XML格式,用于替代二进制.xls格式。后续Excel 2007及以后版本引入了Office Open XML格式(.xlsx),功能更丰富,逐渐取代了XML Spreadsheet 2003格式,但后者仍然是合法的“XML Excel”文件规范。
内容的提问来源于stack exchange,提问作者Tom's
相关产品推荐
相关产品推荐

