润乾报表使用EXCEL数据源的方法及改进.pdf

润乾报表使用EXCEL数据源的方法及改进.pdf

ID:52880990

大小:773.96 KB

页数:7页

时间:2020-03-31

润乾报表使用EXCEL数据源的方法及改进.pdf_第1页
润乾报表使用EXCEL数据源的方法及改进.pdf_第2页
润乾报表使用EXCEL数据源的方法及改进.pdf_第3页
润乾报表使用EXCEL数据源的方法及改进.pdf_第4页
润乾报表使用EXCEL数据源的方法及改进.pdf_第5页
资源描述:

《润乾报表使用EXCEL数据源的方法及改进.pdf》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、润乾报表使用EXCEL数据源的方法及改进Excel作为一种常见的文件格式广泛存在,很多报表的数据来源于Excel。由于报表一般都带有参数,经常需要对原始数据进行分组、过滤等,都需要再编写程序代码才能满足有参数报表的查询需求。润乾报表使用Excel数据源,需要用Java程序处理文件,通过自定义数据集为报表提供数据源支持。这里通过一个实例说明润乾报表实现过程,以及改进方式。报表描述基金公司将股票信息以每月一个Excel存储,命名方式为:stock_yyyyMM.xls。包括每只股票的股票编码、交易日期和收盘价,现报表参数为起始年月和结束年月,报表按照交易日排序,展现股票交易记录列表。Ex

2、cel内容如下:报表格式如下:股票编码交易日期收盘价润乾报表实现自定义数据集这里使用poi读取操作Excel,以下为实现步骤:1、定义股票信息类,用于存储股票交易信息classStock{//省略构造函数和getset方法privateStringcode;privateStringtradingDate;privateStringprice;}2、在自定义数据集中接收并解析报表参数,判断使用哪些文件;//取得参数列表并分别取得它的参数名与值,宏与之类似Mapmap=ctx.getParamMap(false);intbegin=Integer.parseInt(map.get("b

3、egin").toString());intend=Integer.parseInt(map.get("end").toString());for(inti=begin;i<=end;i++){System.out.println(i);if(i%100>0&&i%100<13){StringfileName="E:\stock_"+i+".xls";System.out.println("Read"+fileName+"startup...");readExcel(fileName);//读入并解析Excel内容,并将结果存入List}}3、使用getCellValue()方法判

4、断单元格格式,由于Excel会将日期按照numeric类型存储,所以要在程序中区分数值和日期,并完成相应转换publicstaticStringgetCellValue(Cellcell){switch(cell.getCellType()){//根据cell中的类型来输出数据caseHSSFCell.CELL_TYPE_NUMERIC://解析自定义日期格式yyyy-mm-dddif(cell.getCellStyle().getDataFormat()==184){SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");doub

5、levalue=cell.getNumericCellValue();Datedate=org.apache.poi.ss.usermodel.DateUtil.getJavaDate(value);returnsdf.format(date);}returncell.getNumericCellValue()+"";caseHSSFCell.CELL_TYPE_STRING:returncell.getStringCellValue();caseHSSFCell.CELL_TYPE_FORMULA:returncell.getCellFormula().toString();def

6、ault:returnnull;}}4、实现读入Excel方法readExcel(),根据传入Excel文件名读入并解析,将文件内容存入ListpublicstaticvoidreadExcel(StringfileName){booleanisE2007=false;//判断是否是excel2007格式if(fileName.endsWith("xlsx"))isE2007=true;try{InputStreaminput=newFileInputStream(fileName);//建立输入流Workbookwb=null;//根据文件格式(2003或者2007)来初始化if(

7、isE2007)wb=newXSSFWorkbook(input);elsewb=newHSSFWorkbook(input);Sheetsheet=wb.getSheetAt(0);//获得第一个表单Iteratorrows=sheet.rowIterator();//获得第一个表单的迭代器Stringcode=null;Stringdate=null;Stringprice=null;while(rows.hasNext()){Rowrow=

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。