Java 导出Excel范例
来源:互联网 发布:行知职业技术学校地址 编辑:程序博客网 时间:2024/05/16 01:08
SpringMvc Contorller
Excel 单元格的抽象类 ExcelModel
拿到单元格头部的方法getDailyExcelModel
采用的POI版本
@SuppressWarnings("resource")@RequestMapping("/exportDailyExcel")public void exportDailyExcel(HttpServletRequest request,HttpServletResponse response){HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet1 = wb.createSheet("日常费用主表信息"); processDailyTableHead(sheet1); Map<String,String> params = this.processDaily(request); List<DailyExpense> lst = this.expenseService.findDailyExpenseByCondition(params,-1,-1); this.expenseService.processTableData(sheet1, lst, getDailyExcelModel()); String fileName = "dailyExpense"+ DateTimeUtils.getNowTimeStr(null) +".xls"; response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\""); try { wb.write(response.getOutputStream()); } catch (IOException e) { e.printStackTrace(); } }
处理表头的方法 processDailyTableHead
public void processDailyTableHead(HSSFSheet sheet){ List<ExcelModel> list = getDailyExcelModel(); HSSFRow row = sheet.createRow(0); for(int i=0; i<list.size(); i++){ HSSFCell cell = row.createCell(i); cell.setCellValue(list.get(i).getColumName()); } }
处理表格数据的方法processTableData,此处采用的是泛型,较为通用
public <T> void processTableData(HSSFSheet sheet, List<T> rList,List<ExcelModel> list) {for (int i = 0; i < rList.size(); i++) {HSSFRow row = sheet.createRow(i + 1);T t = rList.get(i);for (int m = 0; m < list.size(); m++) {try {HSSFCell cell = row.createCell(m);String fieldValueStr = "";String fieldName = list.get(m).getFieldName();Object fieldValue = null;if(fieldName.contains(".")){String str = fieldName.substring(0,fieldName.indexOf('.'));fieldValue = PropertyUtils.getProperty(t, str);if(fieldValue == null){fieldValueStr="";cell.setCellValue(fieldValueStr);continue;}}fieldValue = PropertyUtils.getProperty(t, list.get(m).getFieldName());if (fieldValue != null) {fieldValueStr = fieldValue.toString();if(fieldValueStr.equals("true")){fieldValueStr="是";}else if(fieldValueStr.equals("false")){fieldValueStr="否";}}cell.setCellValue(fieldValueStr);} catch (IllegalAccessException e) {e.printStackTrace();} catch (InvocationTargetException e) {e.printStackTrace();} catch (NoSuchMethodException e) {e.printStackTrace();}}}}
Excel 单元格的抽象类 ExcelModel
public class ExcelModel{private int index=0;private String columName;private String fieldName;public ExcelModel(){}public ExcelModel(String columName,String fieldName){this.setIndex(index);this.setColumName(columName);this.setFieldName(fieldName);}public ExcelModel(int index,String columName,String fieldName){this.setIndex(index);this.setColumName(columName);this.setFieldName(fieldName);}public int getIndex() {return index;}public void setIndex(int index) {this.index = index;}public String getColumName() {return columName;}public void setColumName(String columName) {this.columName = columName;}public String getFieldName() {return fieldName;}public void setFieldName(String fieldName) {this.fieldName = fieldName;}}
拿到单元格头部的方法getDailyExcelModel
public List<ExcelModel> getDailyExcelModel(){ List<ExcelModel> list = new ArrayList<ExcelModel>(); list.add(new ExcelModel(list.size(),"单据编号","expenseCode")); list.add(new ExcelModel(list.size(),"申请人","applicantName")); list.add(new ExcelModel(list.size(),"费用承担部门","requestByDeparmentName")); list.add(new ExcelModel(list.size(),"专项","specialProject.name")); list.add(new ExcelModel(list.size(),"申请日期","applicationDate")); list.add(new ExcelModel(list.size(),"支付方式","paymentTypeName")); list.add(new ExcelModel(list.size(),"报销金额","requestAmount")); list.add(new ExcelModel(list.size(),"是否冲销款","payedByLoanOption")); list.add(new ExcelModel(list.size(),"冲销款金额","payedByLoanAmount")); return list; }
采用的POI版本
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.11</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.11</version> </dependency>
0 0
- Java 导出Excel范例
- JAVA poi 导出为excel详细范例
- excel导出范例
- datagrid导出到excel范例
- Java导出Pdf范例
- struts2导出excel java 导出excel
- struts2导出excel java 导出excel
- java导出EXCEL
- JAVA 导入导出Excel
- Java jxl导出excel
- java导出Excel
- java 导出 Excel 报表
- java excel导入导出
- java excel导入导出
- JAVA导出EXCEL心得
- 【Java】导出excel表格
- java poi 导出excel
- java怎么导出excel
- c语言全局变量和局部变量
- 习题2—20
- 自定义控件其实很简单
- python随机数生成
- 启动Hadoop集群和HBase集群脚本
- Java 导出Excel范例
- HDOJ 题目1528 Card Game Cheater(二分图最小点覆盖)
- 安装PowerDesigner16.5所遇到的问题及解决
- 奔走在算法的大路上(一)排序之选择排序
- Hadoop——获取所有主机节点
- Oracle 中的JOIN
- Postgresql
- HTML5-桌面式web应用-与web服务器通信( XHR, 服务器发送事件, Web Socket:)
- ACM--steps--dyx--2.3.8--小兔的棋盘