public <T> String CreateExcelDemo(List<T> list) throws Exception {//方法参数是查询数据库得到的对象集合 String fileName = null; // 第一步,创建一个webbook,对应一个Excel文件 HSSFWorkbook wb = new HSSFWorkbook(); // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet HSSFSheet sheet = wb.createSheet("系统日志"); // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short HSSFRow row = sheet.createRow((int) 0); // 第四步,创建单元格,并设置值表头 设置表头居中 HSSFCellStyle style = wb.createCellStyle(); Class clazz = list.get(0).getClass(); //获取声明字段 Field[] fields = clazz.getDeclaredFields(); //第五步,填充表中信息 //列名 HSSFCell cell = row.createCell((short) 0); cell.setCellValue("序号"); for (int i = 0; i < fields.length; i++) { cell = row.createCell((short) i+1); cell.setCellValue(fields[i].getName()); } //每一列 for (int i = 0; i < list.size(); i++) { Object obj = list.get(i); // 第四步,创建单元格,并设置值 row = sheet.createRow((int) i + 1); HSSFCell celli = row.createCell((short) 0); row.createCell((short) 0).setCellValue(i+1); for (int j = 0; j < fields.length; j++) { String filedName = fields[j].getName(); row.createCell((short) j+1).setCellValue( clazz.getMethod("get" +filedName.substring(0, 1).toUpperCase().concat(filedName.substring(1))).invoke(obj).toString()); } } // 第六步,将文件存到指定位置 try { fileName = "J:\\idea_project2\\ssm_project\\ssm_project_web\\src\\download\\" + UUID.randomUUID().toString() + ".xls"; FileOutputStream fout = new FileOutputStream(fileName); wb.write(fout); fout.close(); wb.close(); } catch (Exception e) { e.printStackTrace(); } return fileName; }
相关分类