使用XLSTransformer生成XLS报表的步骤和流程:

需要引入的jar包:

jxls-core-0.9.7.jar

jxls-reader-0.9.7.jar

poi-3.6.jar

commons-jexl-1.1.jar

commons-digester-2.0.jar

commons-beanutil-core-1.8.3.jar

commons-collection.jar

示例代码:

import java.io.IOException;
import java.net.URL;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.jxls.exception.ParsePropertyException;
import net.sf.jxls.transformer.XLSTransformer;  

1,查询数据库记录,获得需要导出到execl中的数据;
2,把数据封装到List中;

通常我们是这样做的:List<Object> business = new ArrayList<Object>();

3,将List放到HashMap中;

通常我们是这样做的:

Map<String, Object> beans = new HashMap<String, Object>();

business.add(businessCharge);

4,xls模板文件路径;   //这个需要开发者提供,放在项目的某个目录下

我们如果需要生成execl报表文件,需要先设置好一个报表模板,如下图所示:

说明:

a,<jx:forEach items="$Entity" var="entity"></jx:forEach>,迭代标签,迭代输出所有的记录;

b,Entity = 封装记录的对象,如果是单表查询,就是实体类;如果是多表查询,就是封装查询结果的对象,可以看作是一个新的实体类。

c,entity = 别名

d,entity.id = 实体类中的id字段

5,生成的目标文件路径; //目标文件路径:可以是本地的E盘上等等

6,创建目标文件夹;FileUtil.makeDir(“生成的目标报表的路径,注意,这里没有文件名”);

if(!FileUtil.isFileExists("目标文件路径 + 目标文件名称")){FileUtil.makeDir("目标文件路径");
}

7,创建XLSTransformer 对象,调用transformer.transformXLS(templatePath, beans, reportPath),生成报表。

以上就是使用XLSTransformer生成报表的大概流程。难点在于数据的获取,例如些SQL语句,检查获得的报表的数据的完整性,准确性,安全性等。生成报表使用的最多的就是存储过程了,所以掌握生成报表的技术,我们需要先掌握存储过程的知识。

如果需要生成TXT报表,则可以这样进行:

/***  生成txt报表/txt报表 */
public void generateTxtReport() {String reportDate = "2016-03-05";Map<String, Object> map = new HashMap<String, Object>();map.put("reportDate", reportDate);BigDecimal payAmtCount = new BigDecimal(0);String reportPath = "report.txt";PrintWriter printWriter = null;try {printWriter = new PrintWriter(reportPath, "GBK");printWriter.printf("%-32s\r\n", "XXX明细报表(TXT)");// 查询报表数据List<Map<String, Object>> Entitylist = null; //从数据库查询出来的数据可以直接封装在这个list中 EntitylistList<Map<String, Object>> listNew;BigDecimal payAmtVendorCount;for (Map<String, Object> EntityInfo : Entitylist) {map.put("Id", EntityInfo.get("ID"));listNew = null; //从数据库中查询出来的数据// 输出数据到TXT报表if (!listNew.isEmpty()) {printWriter.printf("%-50s\r\n", EntityInfo.get("ID"));printWriter.printf("%-100s\r\n", EntityInfo.get("NAME"));printWriter.printf("总金额");// 表头printWriter.printf("%-150s\r\n","-----------------------------------------------------------");payAmtCount = new BigDecimal(0);for (Map<String, Object> value : listNew) {payAmtCount = payAmtVendorCount.add((BigDecimal) value.get(AMT));// 循环统计商户数据payAmtCount = payAmtCount.add((BigDecimal) value.get(AMT));// 打印数据printWriter.printf("XXXX");}// 单个商户合计打印printWriter.printf("%-150s\r\n","-----------------------------------------------------------");printWriter.printf("%-20s%\r\n", "合计:", "交易笔数:" + listNew.size(), "", payAmtCount);printWriter.printf("%1s\r\n", " ");// 空行try {printWriter.flush();} catch (Exception e) {}}}printWriter.printf("%-50s\r\n", "总合计:");printWriter.printf("%-15s\r\n", "-----------------------------------------------------------");printWriter.printf("%-10s%\r\n", "总交易笔数");printWriter.printf("%-15s%\r\n", payAmtCount);printWriter.printf("%-15s\r\n", "-----------------------------------------------------------");} catch (Exception e) {log.error("Export txt fail", e);} finally {try {printWriter.flush();printWriter.close();} catch (Exception e) {log.error("IO txt fail", e);}}
}

接着会继续分享报表方面的经验。

使用XLSTransformer生成报表的步骤和流程相关推荐

  1. Smartbi自定义生成报表-制作流程

    Smartbi自定义生成报表,分析报告制作的流程: 模板准备 制作分析报告的第一步,准备要制作分析报告的模板,以便对要制作的内容有所评估. ● 制作模板:根据分析报告的主题.需求制作模板. ● 现有模 ...

  2. 用MS SQL Reporting Services生成报表

    灵活的报表功能是大多数业务应用程序的一个要求,这些报表功能在集成到 Web 应用程序中之后用途更加广泛.利用 SQL Server® 2000 Reporting Services 的最新版本,您可以 ...

  3. 使用FastReport报表工具生成报表PDF文档

    在我们开发某个系统的时候,客户总会提出一些特定的报表需求,固定的报表格式符合他们的业务处理需要,也贴合他们的工作场景,因此我们尽可能做出符合他们实际需要的报表,这样我们的系统会得到更好的认同感.本篇随 ...

  4. 23考研预报名详细步骤、流程及常见问题解答

    超详细--23考研预报名详细步骤.流程及常见问题解答(看完还有不懂请举报我) 研招网开放填写考生信息功能,这也是考研报名的第一步.之所以在预报名前开放,其目的也是为了分流一些预报名时的网络压力,早些年 ...

  5. 停止你的周报焦虑!一键生成报表模板的神器来了

    进入职场后,打工人每到周末都会有一种焦虑--周报焦虑 知乎上有个近10w浏览量的热帖,"如果一家公司要写日.周报,你能得出什么结论?" 天天被日周报折磨.苦不堪言的互联网打工人一时 ...

  6. 微信小程序的制作方法步骤和流程

    从运营的角度讲制作,不是从程序的角度讲开发,所以简单明晰,通俗易懂,小白也能按照流程完成制作. 微信小程序制作步骤及流程 1.确定好微信小程序的的定位和目的 如行业,功能,内容,目标用户,目标市场,意 ...

  7. 利用reportviewer与C#生成报表

    利用reportviewer与C#生成报表. 这个是我自己做的总结,供大家参考.不足之处,请大家批评指针. http://blog.sina.com.cn/s/blog_149e9d2ec0102vu ...

  8. 数据自动录入并生成报表神器怎么玩?

    做报表.分析数据.做汇报是许多打工人的日常,每天都要耗费不少的时间用Excel来整理.清洗数据和生成好看的报表.如果这些数据都是手动整理.复制粘贴的话,不仅费时费力,而且很容易出错. 在越来越多企业采 ...

  9. JXls实现基于excel模板生成报表

    JXls实现基于excel模板生成报表 jxls是非常小巧方便生成excel报表的工具库.jxls在excel模板中使用特定标记,定义输出格式和数据布局.在很多应用中有报表功能需要生成excel. j ...

  10. 如何根据参数选择 Excel 并筛选数据后生成报表

    需求说明 有某超市 2020 年各月产品采购明细数据,按月存放在"HDatas"的 Excel 文件,如下 数据格式如下 报表要求: 输入开始及结束日期两个参数(不跨月)后,找到对 ...

最新文章

  1. Chapter 2 Open Book——29
  2. 针对MySQL数据库主从延迟的问题
  3. 玩转Linux必备知识(一)
  4. unicode编码问题
  5. Mind Control CodeForces - 1291C(思维)
  6. oracle 主键列创建自增长,powerdesigner创建oracle 数据库表,设置表主键列为自动增长。 ....
  7. 手机信号G、E、O、3G代表什么意思?
  8. SQlite Android数据库的应用 Android SQLite 简易的学生成绩管理系统
  9. VScode 搭建 django 开发环境(MAC、Python3.7)
  10. Julia :元编程、宏
  11. C语言例题——简易秒表
  12. Python 详解K-S检验与3σ原则剔除异常值
  13. java可以编辑 cad吗_MiniCAD 简单的java画图,能画圆、直线、矩形,还能移动,修改颜色等 Develop 238万源代码下载- www.pudn.com...
  14. 大学英语四级考试大纲
  15. oracle 英文 简历,免费英文简历范文模板
  16. Thingworx笔记-创建菜单
  17. Kali Linux 渗透测试之被动信息收集(三)——Recon-NG框架
  18. 【图的表示】:如何存储微博、微信等社交网络中的好友关系?
  19. AQI(空气质量指数)分析与预测(四)
  20. 判断ip地址是否在同一网段

热门文章

  1. Windows10中安装VMware Workstation Pro 15.x与使用Ubuntu 20.04 LTS
  2. 破茧成蝶2——以产品为中心的设计革命
  3. Oracle数据库 入门教程
  4. 查看局域网中的其他机器的IP地址
  5. 感受MapXTreme2004
  6. matlab学习心得与体会
  7. 基于python的贪吃蛇游戏设计与实现
  8. AMPL_网络项目问题
  9. Visio2016下载激活破解
  10. python 数据类笔试题_数据分析岗Python笔试题