参见如下代码,后面会慢慢整理该文章。
chargeStatDTO.getBetsDataList() : 数据库中查询得到的数据(可以根据自己的需求修改)
//导出excel文件
IExcelAPI excelService = new ExcelAPIImpl();
filePath = excelService.genExcelFile(chargeStatDTO.getBetsDataList(),SltDataConstants.SLT_CHARGE_EXCEL_COLUMNS);
ExcelAPIImpl.java
public String genExcelFile(List chargeDataList,int columns) throws BizException{
if(chargeDataList == null || chargeDataList.isEmpty()){
throw new BizException("## 生成excel文件异常: 无符合条件的记录");
}
// 初始化EXCEL文件表格
String[][] content = null; // 保存查询出的结果,以便生成EXCEL文件
String fileName = null; // 文件名
SltUserCharge sltUserCharge = null;
int rows = chargeDataList.size() + 1;
logger.info("** 记录数: " + rows);
content = new String[rows][columns];
content[0][0] = "用户ID";
content[0][1] = "所属渠道";
content[0][2] = "所属中心";
content[0][3] = "累计充值金额";
int i = 1;
for(Iterator it = chargeDataList.iterator();it.hasNext();) {
sltUserCharge = (SltUserCharge) it.next();
content[i][0] = String.valueOf(sltUserCharge.getUserid().longValue());
content[i][1] = sltUserCharge.getChannelName();
content[i][2] = sltUserCharge.getCenterName();
content[i][3] = String.valueOf(sltUserCharge.getTotalChargeMoney().doubleValue());
i++;
}
// excel文件存放地址
fileName = SltDataConstants.EXCEL_FILE_ADDR;
// 生成EXCEL文件
String now = sdf.format(new Date());
//String time = now.substring(0, 8);
String filePath = null;
if (content != null && fileName != null) {
ExcelProcessor excel = ExcelProcessor.getInstance();
if (content.length <= EXCEL_MAX_ROW) {
filePath = fileName + now + ".xls";
logger.info("EXCEL文件路径:" + filePath);
if(!excel.write2Excel(filePath, content)) {
logger.error("生成EXCEL文件失败(" + sdf.format(now) + "):" + filePath);
}
}else {
int size = content.length;
int archives = size / EXCEL_MAX_ROW;
int start = 1;
int end = 1;
for (int j = 0; j <= archives; j++) {
int num = j + 1;
filePath = fileName + now + "_" + num + ".xls";
logger.info("EXCEL文件路径:" + filePath);
start = end;
end = start + (EXCEL_MAX_ROW - 1);
if (end >= size) {
end = size;
}
if (!excel.write2Excel(filePath, content, start, end)) {
logger.error("生成EXCEL文件失败(" + sdf.format(now) + "):" + filePath);
}
}
}
}
logger.info("** [成功生成excel!]");
String fileRS = filePath.replaceAll(SltDataConstants.FILE_DIR_ADDR, "");
logger.info("** filePath = " + fileRS);
return fileRS;
}
以上的代码不是很难理解,所以没有做过多的解释。
大家有什么问题请提出来交流交流。
分享到:
相关推荐
3.3 软件调试 在"电费"表格输入数据,"学院一月电费"表格数据同步更新,保证了报表数据的"同 一性"。在【选择性粘贴】 【粘贴链接】数据时,应特别注意单元格数据的对应,以免 发生单元格错位导致数据错误。 3.4 ...
Bootstrap-Export(各种报表导出SQL,Excel,pdf等)框架,整合Echars,各类图表的展示(折线图,饼图,直方图等),使用了layui的弹出层、菜单、文件上传、富文本编辑、日历、选项卡、数据表格等 Oracle关系型...
内附1-19章的实战程序。 目录 第1章 c#语言及其开发环境 实例001 根据需要创建所需解决方案 实例002 统一窗体中控件的字体设置 实例003 设置程序代码行号 实例004 通过“格式”菜单布局窗体 实例005 为项目添加dll...
从0开始构建BI商业大数据分析平台,以实际的电商分析业务,贯穿数据生成,数据仓库、ETL、数据分析以及可视化分析和商业BI报表,让你三天零基础快速搭建商业化BI分析平台 课程亮点 1,零基础讲解,从数据存储到商业...
第5篇 操作Word、Excel、报表与打印篇 第20章 JSP操作Word 764 20.1 应用JavaScript导出到Word 765 20.2 应用响应流导出到Word 766 20.3 应用POI组件导出到Word 772 第21章 JSP操作Excel 775 21.1 应用JXL组件操作...
第5篇 操作Word、Excel、报表与打印篇 第20章 JSP操作Word 764 20.1 应用JavaScript导出到Word 765 20.2 应用响应流导出到Word 766 20.3 应用POI组件导出到Word 772 第21章 JSP操作Excel 775 21.1 应用JXL组件操作...
总结:就是自动从excel读出测试用例,然后运行,得出报表。 1 怎么测? 功能测试:该如何去执行这些接口用例 功能测试:版本迭代的时候,又该如何测试? 功能测试:如果每一个接口的用例有80个怎么办? 想法:如何...
本书侧重于函数的实战应用,共分12章,前10章分别介绍了数学函数、统计函数、日期和时间函数、文本函数、逻辑函数、查找和引用函数、财务函数、信息函数以及数据库和三角函数在实战中的应用;第11 章介绍了函数与...
实例019 像Excel一样复制DataGridView中的单元格区域数据 69 实例020 DataGridView中单元格合并及添加、显示行号 74 实例021 从DataGridView控件中拖放数据到TreeView控件 78 第3章 图形图像及多媒体应用 ...
实例019 像Excel一样复制DataGridView中的单元格区域数据 69 实例020 DataGridView中单元格合并及添加、显示行号 74 实例021 从DataGridView控件中拖放数据到TreeView控件 78 第3章 图形图像及多媒体应用 ...
同时会涉及到jQuery Ajax、XML、jQuery插件 、Dtree递归树\WebChart高级图表统计图\Excel导出复杂报表打印\CodeSmith\图片水印\防盗链\WebService\面向对象的建模、分析、设计和实施方法,掌握第三方控件技术和报表...
根据基本表结构及其数据生成 INSERT ... 的 SQL 简便的MS SQL 数据库 表内容 脚本 生成器 将表数据生成SQL脚本的存储过程 直接从SQL语句问题贴子数据建表并生成建表语句的存储过程 从SQL中的一个表中导出HTML文件...