需求要求:根据数据库中查询出的数据,导出报表, 电子表格形式, 可以使用MS Office 打开。
最开始的想法:
1.使用Apache的POI API将查询到的数据填写到Excel文档中,但思来想去觉得这不是一个Good idea,感觉类似硬编码,太生硬太粗暴;
2.使用开源的一些报表工具:貌似很多工具都很花哨我的项目用不到,而且学习周期长,有些工具虽开源但文档收费(要命,按美金收,没文档很难整);
最后考虑下来,决定尝试XSLT:
1. 相对成熟的技术,使用的人多,可参考的例子也多;
2. 学习周期短;
3. 手边有一个现成的XSLT解析XML生成表格型XML(可以使用MS Office 2003以上版本打开,界面显示同Excel)的例子;
学习及实践的Step:
1. 首先,按照项目的需求,创建一个相应的表格型XML(可以使用MS Office 2003),模拟些假的数据,保存,然后使用文本编辑器打开查看其格式,对要生成的目标文件有个大体的了解;
<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook ..........>
<!--文档属性-->
<DocumentProperties ......>
.....
</DocumentProperties>
<!--Excel工作簿属性-->
<ExcelWorkbook ....>
.....
</ExcelWorkbook>
<!--定义共通样式供单元格调用-->
<Styles>
....
</Styles>
<!--Excel的sheet-->
<Worksheet ss:Name="报表-部门费用分配表">
<Table ss:ExpandedColumnCount="8" ss:ExpandedRowCount="73" x:FullColumns="1"
x:FullRows="1" ss:StyleID="s23" ss:DefaultColumnWidth="90"
ss:DefaultRowHeight="18">
<!--某一列的属性-->
<Column ss:Index="8" ss:StyleID="s23" ss:Width="99.75"/>
<!--某一行的属性-->
<Row ss:AutoFitHeight="0" ss:Height="29.25" />
<!--行中各单元格的值和属性-->
<Cell />
<Cell />
...
...
</Row>
...
...
...
</Table>
</Worksheet>
</Workbook>
从上面可以看出:表格型的XML其结构还是很清晰的,包括数据是以何种方式列举并显示的。
整个过程: 根据我们的源数据XML的结构,写一个XSL文件(相当于写一个逻辑处理代码,使用的是XSLT的API), 然后来解析(解析使用XSLT的引擎)这个源数据XML, 最后生成(或者说组合出)目标文件(一个表格型的XML)。
此为第一弹,了解下目标文件:表格型XML的结构。未完待续。
分享到:
相关推荐
3. **解析XML**:Birt提供了两种解析方式——XPath和XSLT。XPath用于定位XML文档中的节点,而XSLT则用于转换XML数据。 4. **定义数据集**:通过XPath表达式选择需要的数据,并创建数据集。数据集是Birt中数据的逻辑...
在我们的场景中,(StatisDocumentByDepart).xsl是用于解析XML数据并将其格式化为报表的XSL样式表。XSLT(XSL Transformations)是XSL的一个子集,专门用于转换XML文档。以下是一个简单的XSLT示例,它将XML数据转换为...
第二个例子同样生成表格,但增加了使用`<xsl:choose>`进行条件判断,可能用于对特定的CD元素进行特殊处理。 【总结】 XML和XSLT的结合使用使得数据的表示和呈现变得灵活多样。通过XSLT,开发者可以定制XML数据的...
总之,XML+XSL/FO+FOP技术栈提供了一种强大的方法,将结构化的XML数据转换为专业品质的PDF文档,适合于各种业务场景,如自动化报表生成、电子出版物制作等。熟悉这一流程对于IT从业者,尤其是从事数据处理、文档管理...
综上所述,Asp报表设计源码和XML数据交换是一个深度学习的话题,涵盖了Web开发中的许多核心概念,包括动态网页生成、数据绑定、XML处理和客户端服务器通信。对这个主题的深入理解和实践,对于提升Asp应用开发能力,...
- **API返回的XML数据**:当API返回XML格式的结果时,可以使用BIRT解析并生成报表。 - **自定义数据交换格式**:企业内部可能有基于XML的自定义数据格式,BIRT提供了一个灵活的平台来处理这些数据。 7. **MHT文件...
无论是简单的报表还是复杂的多页文档,XML Publisher都能胜任,是企业IT部门不可或缺的工具之一。在实际应用中,理解XML数据结构、掌握XSL-FO模板设计以及熟练使用XML Publisher的各项功能,将有助于你更好地利用这...
当XSLT处理器应用`ex6.xsl`到`banji.xml`时,它会根据模板的匹配规则对XML文档进行转换,生成一个新的HTML文档,该文档可以被浏览器解析并显示为一个包含班级所有学生信息的表格。 总结来说,XML和XSLT的结合使用...
在IT行业中,Excel文件是一种广泛使用的数据存储和分析工具,特别是在数据分析、报表生成以及数据交换等领域。XML(Extensible Markup Language)则是一种用于存储和传输数据的标记语言,它的结构化特性使得它非常...
2. **数据解析**:ASP可以使用DOM(Document Object Model)或SAX(Simple API for XML)解析XML文档。DOM将整个XML文档加载到内存中,形成一个树形结构,便于访问和操作;SAX则采用事件驱动的方式,逐个处理XML元素...
3. XSLT转换:使用XSLT处理器(如Saxon或Xalan)对XML和XSL进行解析和转换。 4. 输出Excel:转换后的结果通常为一个临时的HTML或XML文件,可以被浏览器或专门的工具识别并呈现为Excel格式。 5. 反台处理:服务器端的...
2. **数据格式化**:对于处理结构化数据,如报表或日志,Xalan可以将XML数据格式化为易于阅读的文本或表格形式。 3. **动态文档生成**:在服务器端,Xalan可以结合Java后端逻辑动态生成定制化的HTML或其他文档格式,...
例如jasperreports.jar,它包含了报表引擎,负责解析JRXML文件并生成报表。 2. **iReport Designer**: 这是iReport的运行时库,如ireport-designer.jar,它提供了报表设计界面和相关功能。这些JAR文件帮助开发者在...
- XSLT通过模板匹配实现转换,每个模板对应XML文档中的一个元素。 - `<xsl:template>`定义模板,`match`属性指定匹配的XML元素。 - `<xsl:apply-templates>`用于在处理过程中应用其他模板。 - `<xsl:value-of>`...
6. **dom4j-1.6.1.jar**: 这是一个用于处理XML的Java库,提供了强大的文档对象模型(DOM)、简单API(SAX)和可扩展样式表语言转换(XSLT)支持。在处理Excel时,dom4j可能被用来辅助解析或生成XML数据。 在Java...
- 对大型XML文件的解析效率较低。 - 页面首次加载可能会有延迟。 #### 七、XSL与XSLT转换 XSL(Extensible Stylesheet Language)和XSLT(XSL Transformations)是用于转换XML数据的强大工具。通过定义XSL样式表...
7. dom4j-1.6.1.jar:DOM4J,一个Java XML API,用于处理XML、XPath和XSLT。 8. junit-3.8.1.jar:JUnit测试框架的早期版本,用于编写和运行单元测试。 9. commons-logging-1.1.jar:Apache Commons Logging,一个...