动态列报表导出Excel_第1页
动态列报表导出Excel_第2页
动态列报表导出Excel_第3页
动态列报表导出Excel_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

动态列报表导出Excel/***********publicclassCommonOutleadExcel{导出excel前对数据进行处理@authorwwy@date2017-3-1@paramcolumnList:列索引跟dataList中map的key值保持一致@paramDatalist:数据列表@paramcolumnNameMap:列名,其中key/************/publicvoidoutleadExcelPro(List<String>columnList,List<Map<String,Object>>Datalist,Map<String,Object>columnNameMap,HttpServletResponseresponse,StringstringName)throwsIOException{Map<String,Object>resultMap=newHashMap<String,Object>();finalServletOutputStreamos=response.getOutputStream();//获得ServletOutputStream对象response.setContentType("application/x-msdownload");response.setHeader("Content-Disposition”,"attachment;filename="+URLEncoder.encode(stringName+".xlsx”,"UTF-8")+';');〃导出excelcopyrightContractCount(stringName,resultMap,columnList,columnNameMap,Datalist,os);}privatevoidcopyrightContractCount(Stringname,Map<String,Object>resultMap,List<String>columnList,Map<String,Object>columnNameMap,List<Map<String,Object>>dataList,OutputStreamos){Stringtitle=name;Workbookworkbook=newXSSFWorkbook();//产生通用单元格样式CellStylestyle=generateCommonCellStyle(workbook);〃创建sheet表单,同时写入标题Sheetsheet=generateSheet(workbook,title,columnList,style);

〃写入标题行writeColumnName(sheet,columnList,columnNameMap,style);//写入数据行//writeDataRow(sheet,columnList,resultMap,dataList,style);writeDataRow_new(sheet,columnList,dataList,style);//输入excel文件try{workbook.write(os);os.close();}catch(lOExceptione){e.printStackTrace();}/**

********}写入数据@authorwwy@date2017-3-1@paramsheet@param/**

*********/privatevoidwriteDataRow_new(Sheetsheet,List<String>columnList,List<Map<String,Object>>dataList,CellStylestyle)(introwIndex=2;for(inti=0;i<dataList.size();i++)(〃创建一行RowdataRow=sheet.createRow(rowIndex++);〃获取改行数据Map<String,Object>rowDataMap=dataList.get(i);if(columnList!=null&&columnList.size()>0)(for(intj=0;j<columnList.size();j++)(〃创建单元格CelldataCell=dataRow.createCell(j);〃设置单元格样式dataCell.setCellStyle(style);//从数据map中获取对应列的数据Stringvalue=String.valueOf(rowDataMap.get(columnList.get(j)));〃将数据写入单元格

/***

*/***

********往sheet表单中写入列头数据columnList:列头数据liststyle:单元格样式@authorwwy@date2017-3-1@paramsheet@paramcolumnList@paramstyle*/privatevoidwriteColumnName(Sheetsheet,List<String>columnList,Map<String,Object>columnNameMap,CellStylestyle)(RowtitleRow=sheet.createRow(1);intindex=0;for(inti=0;i<columnList.size();i++)(CelltitleCell=titleRow.createCell(index);titleCell.setCellStyle(style);titleCell.setCellValue(String.valueOf(columnNameMap.get(columnList.get(i))));index++;}/**********}

〃创建sheet表单Sheetsheet=workbook,createSheet(title);〃在表单中创建一行RowtableRow=sheet.createRow(O);〃在行中创建单元格for(inti=0;i<columnList.size();i++)(Cellcell=tableRow.createCell(i);cell.setCellStyle(style);}/**********sheet.addMergedRegion(newCellRangeAddress(0,0,0,columnList.size()-1));returnsheet;/***/********创建sheet表单,同时生成表头title:标题名columnList:列名list@authorwwy@date2017-3-1@paramworkbook@paramtitle@paramcolumnList*/privateSheetgenerateSheet(Workbookworkbook,Stringtitle,List<String>columnList,CellStylestyle)(创建通用cell样式@authorwwy@date2017-3-1@paramworkbook@return*/privateCellStylegenerateCommonCellStyle(Workbookworkbook)(CellStylestyle=workbook.createCellStyle();style.setAlignment(CellStyle.ALIGN_CENTER);style.setBorderLeft(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论