POI导出数据
作者:快盘下载 人气:Workbook wb=new HSSFWorkbook();//新建一个wb工作簿
Sheet sheet = wb.createSheet("学生的sheet页");
Row row=sheet.createRow(0);
//反射获取属性名作为表头 这里也可以让别人传
Field[] Fields = clz.getDeclaredFields();
for (int i = 0; i < Fields.length; i++) {
Fields[i].setAccessible(true);
Cell cell = row.createCell(i);
cell.setCellValue(Fields[i].getName());//获取到属性名赋值到单元格
}
//ls数据集合 这里需要注意数据量因为一个sheet页最多只能放置
//65536行 但是到excel2010版本最大的行数为1048576所以要特别注意
for (int j = 0; j < ls.size(); j++) {
Row row1=sheet2.createRow(j);
for (int i = 0; i < Fields.length; i++) {
Fields[i].setAccessible(true);
Object object = Fields[i].get(ls.get(j));
Cell cell = row1.createCell(i);
cell.setCellValue(object.toString());
}
//这是普通的输出的方式 在页面上导出数据则需要
FileOutputStream fout=new FileOutputStream("E:Demo大量数据.xls");
wb.write(fout);
fout.close();
/**
*
* @Title: export
* @Description: (通用的 输出表格)
* @param response 用于发送数据的
* @param wb workbook工作簿
* @param fileName 文件名
* @throws Exception
* @return void
*/
public static void export(HttpServletResponse response, Workbook wb, String fileName) throws Exception {
response.setHeader("Content-Disposition",
"attachment;filename=" + new String(fileName.getBytes("utf-8"), "iso8859-1"));
response.setContentType("application/ynd.ms-excel;charset=UTF-8");
OutputStream out = response.getOutputStream();
wb.write(out);
out.flush();
out.close();
}
加载全部内容