java---POI导出Excel
// 创建输出流 OutputStream out = null; // 输出流 Workbook wb = null; try { out = response.getOutputStream(); wb = new XSSFWorkbook(); // 创建工作簿 Sheet sheet1 = wb.createSheet("sheet1");// 创建sheet Row rowExcel = sheet1.createRow(0);// 创建第一行 CellStyle styleHead = wb.createCellStyle(); // 创建表头样式 styleHead.setAlignment(CellStyle.ALIGN_CENTER);// 创建一个居中格式 XSSFFont font = (XSSFFont) wb.createFont(); //字体 font.setBoldweight(XSSFFont.BOLDWEIGHT_BOLD);//粗体显示 styleHead.setFont(font); //设置表头背景色 styleHead.setFillPattern(CellStyle.SOLID_FOREGROUND); styleHead.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index); CellStyle styleBody = wb.createCellStyle(); // 创建内容样式 styleBody.setAlignment(CellStyle.ALIGN_CENTER);// 创建一个居中格式 // 生成表头字段 List<String> rowHeadExcel = tableHead(targetTypeCH, data); Cell cell = null; for (int i = 0; i < rowHeadExcel.size(); i++) { cell = rowExcel.createCell(i); cell.setCellValue(rowHeadExcel.get(i));// 设置单元格内容 cell.setCellStyle(styleHead); } // 获得要写入的数据 List<Map<String, Object>> excelDataList = tableContentColumn(rowHeadExcel, data); // 写入实体数据 if (!CollectionUtils.isEmpty(excelDataList)) { for (int i = 0; i < excelDataList.size(); i++) {// 根据i创建行 rowExcel = sheet1.createRow(i + 1);// 创建行 Map<String, Object> excelMap = excelDataList.get(i);// 获取对应行的MAP集合 for (int j = 0; j < rowHeadExcel.size(); j++) {// 设置每行单元格内容 cell = rowExcel.createCell(j); String excelColumn = rowHeadExcel.get(j); String excelVal = (String) excelMap.get(excelColumn); cell.setCellValue(excelVal);// 设置单元格内容 cell.setCellStyle(styleBody); } } } //设置列宽自适应(对中文不管用) // sheet1.autoSizeColumn(0,true); “列名”.getBytes().length*2*256 // sheet1.autoSizeColumn(1,true); // sheet1.autoSizeColumn(2,true); // sheet1.autoSizeColumn(3,true); //设置列宽 for (int i = 0; i < rowHeadExcel.size(); i++) { if(i==0){ sheet1.setColumnWidth(i, rowHeadExcel.get(i).getBytes().length*2*256 ); }else{ sheet1.setColumnWidth(i, rowHeadExcel.get(i).getBytes().length*1*280 ); } } // 将数据存入输出流中 wb.write(out); data.setReturnCode("0"); out.flush();