- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
润乾报表使用EXCEL数据源的方法及改进
润乾报表使用EXCEL 数据源的方法及改进
Excel 作为一种常见的文件格式广泛存在,很多报表的数据来源于Excel。由于报表一般
都带有参数,经常需要对原始数据进行分组、过滤等,都需要再编写程序代码才能满足有参
数报表的查询需求。
润乾报表使用Excel 数据源,需要用Java 程序处理文件,通过自定义数据集为报表提供
数据源支持。这里通过一个实例说明润乾报表实现过程,以及改进方式。
报表描述
基金公司将股票信息以每月一个Excel 存储,命名方式为:stock_yyyyMM.xls。包括每只
股票的股票编码、交易日期和收盘价,现报表参数为起始年月和结束年月,报表按照交易日
排序,展现股票交易记录列表。
Excel 内容如下:
报表格式如下:
股票编码 交易日期 收盘价
润乾报表实现
自定义数据集
这里使用poi 读取操作Excel,以下为实现步骤:
1、定义股票信息类,用于存储股票交易信息
class Stock {
//省略构造函数和get set方法
private String code;
private String tradingDate;
private String price;
}
2、在自定义数据集中接收并解析报表参数,判断使用哪些文件;
// 取得参数列表并分别取得它的参数名与值,宏与之类似
Map map = ctx.getParamMap(false );
int begin = Integer.parseInt (map.get(begin).toString());
int end = Integer.parseInt (map.get(end).toString());
for (int i = begin; i = end; i++) {
System.out .println(i);
if (i % 100 0 i % 100 13) {
String fileName = E:\\stock_ + i + .xls;
System.out .println(Read + fileName + startup...);
readExcel (fileName);//读入并解析Excel内容,并将结果存入
List
}
}
3、使用getCellValue()方法判断单元格格式,由于Excel 会将日期按照numeric 类型存
储,所以要在程序中区分数值和日期,并完成相应转换
publicstatic String getCellValue(Cell cell) {
switch (cell.getCellType()) { // 根据cell中的类型来输出数据
case HSSFCell.CELL_TYPE_NUMERIC :
//解析自定义日期格式yyyy-mm-ddd
if (cell.getCellStyle().getDataFormat() == 184) {
SimpleDateFormat sdf = new
SimpleDateFormat(yyyy-MM-dd);
double value = cell.getNumericCellValue();
Date date = org.apache.poi.ss.usermodel.DateUtil
.getJavaDate (value);
return sdf.format(date);
}
return cell.getNumericCellValue() + ;
case HSSFCell.CELL_TYPE_STRING :
return cell.getStringCell
文档评论(0)