Xml方式导出Excel

用Excel 编辑 表格样式 打印样式 等

另存为 后缀名为 .xml格式的文件

以文本形式 打开 ,可以看到 文件编码 是个标准的xml 格式 

根据导出的 xml 格式文件 ,用程序 生成类似的 xml文件 进行输出为后缀名为.xls的文件

第一标签是 xml文件头 

第二标签好像是说文件默认用excle 方式打开 

下面的 DocumentProperties OfficeDocumentSettings ExcleWorkbook 都是文件的一些信息 ,木有什么意思 

Styles 标签中 是 整个Excel文件的样式

<Styles>
  <Style ss:ID="Default" ss:Name="Normal">
   <Alignment ss:Vertical="Center"/>
   <Borders/>
   <Font ss:FontName="宋体" x:CharSet="134" ss:Size="12"/>
   <Interior/>
   <NumberFormat/>
   <Protection/>
  </Style>
  <Style ss:ID="m44768096">
   <Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:WrapText="1"/>
   <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>
   <Font ss:FontName="宋体" x:CharSet="134" ss:Size="9"/>
  </Style>
</Styles>

在下面是<Worksheet ss:Name="Sheet1"> 标签 Name就是 标签名称  一个闭合的Sheet 标签就是一个 Sheet页 ,所以这种导出支持多Sheet页

Sheet标签中的内容 主要就是一个Table 和 一个 WorksheetOptions

WorksheetOptions 主要定义 打印方式  边距 窗口冻结 等等 ,在设计 Excel文件时都设置好了  不需要修改

Table 中就更简单了 和 html中Table 差不多

需要注意的是  ss:ExpandedColumnCount="22" ss:ExpandedRowCount="63"  这两个属性 

如果导出的 文件行数或列数不固定的话 导出文件 如果行数 列数 大于 属性值的大小,文件打不开 会报错

所以直接删除就可以了

ss:StyleID 值对应的是 上面 Styles 中 Style样式的ID  

其他属性直接看就大概知道什么意思了

ss:MergeAcross="21" 是横向合并 也就是合并列 ,表示合并22列  

ss:MergeDown="11"  是纵向合并 也就是合并行,表示合并12行 

 

ss:Index="2" 表示前边有一个单元格是 纵向合并的 而且 前边的单元格在第一列

如果ss:Index="6"  表示 前边合并的列在第五列 即 6 就是当前单元格所在的列数 从1开始数

 

......................

剩下的就是 用程序逻辑来生成xml 文件了 

 

 

 

 

 

原文地址:https://www.cnblogs.com/GodLi/p/2347897.html