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;
}
添加回答
举报
0/150
提交
取消