为了账号安全,请及时绑定邮箱和手机立即绑定

bean对象中有延迟加载的属性,此时bean.getClass().getDeclaredFields(),获取到的不是bean对象的声明字段?

bean对象中有延迟加载的属性,此时bean.getClass().getDeclaredFields(),获取到的不是bean对象的声明字段?

慕侠5502443 2019-02-25 21:24:29
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; }
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 994 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信