一直没接触过xsl,这次需要通过xsl将一个xml转换成预定义格式的Excel表。

于是就去w3school先把xsl,xslt,xpath等过了一遍,期间遇到的问题也不少,就不赘述了。要点记录如下,以便日后查询。

实例:

用到的语法

其中第5条的目的是更改单元格格式,主要是因为Excel中,如果格式是数字的时候,若值为空的时候默认会有“0”或者其他设定的格式(比如“-”)出现,我是想保留空白,格式改成文本就没这个问题。

第6条看上去很简单,费了好大周折。主要目的是统计图片个数,也就是说统计4个图片节点中非空个数。由于xsl中的变量相当于常量,一旦赋值之后就没办法改变了。中间尝试了模板函数,字符串各种变形。。。最后同事一语惊醒梦中人啊,咱就是缺一个把bool转成0,1的函数嘛~于是找到了number,圆满了。

    
progid="Excel.Sheet"







String
 

Number

 




String
 

Number
                          


最后来列一下比较简单讨巧的转换步骤:
1. 新建Excel表,调格式,录入测试数据,另存为.XML类型的文件
2. 将文件后缀改为.XLS
3. 用编辑器打开该文件,另存为一份.XSL文件
4. 加上头尾






progid="Excel.Sheet"

5. 修改

6. 注意

属性,要么留空,要么把正确的行数填进去