码迷,mamicode.com
首页 > 其他好文 > 详细

POI导出工具类

时间:2018-04-16 18:40:02      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:JAVA   POI   

import java.io.IOException; import java.io.OutputStream; import java.net.URLEncoder; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletResponse; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; public class ExportUtils {     /**      * 导出      * @param data 数据      * @param columnTitleList 标题名称      * @param columnCodeList 列参数      * @param fileName 文件名称      * @param response      */     public static void exportData(List<Map<String, Object>> data, String[] columnTitleList, String[] columnCodeList,             String fileName, HttpServletResponse response) {         HSSFWorkbook workbook = new HSSFWorkbook(); //定义一个新的工作簿         HSSFSheet sheet = workbook.createSheet();  // 创建第一个Sheet页         HSSFRow row = sheet.createRow(0);                  // 创建标题样式          HSSFCellStyle headerStyle = (HSSFCellStyle) workbook .createCellStyle();// 创建标题样式           headerStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);    //设置垂直居中           headerStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);   //设置水平居中           HSSFFont headerFont = (HSSFFont) workbook.createFont(); //创建字体样式           headerFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); // 字体加粗           headerFont.setFontName("Times New Roman");  //设置字体类型           headerFont.setFontHeightInPoints((short) 14);    //设置字体大小           headerStyle.setFont(headerFont);    //为标题样式设置字体样式         headerStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); // 下边框           headerStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);// 左边框           headerStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);// 上边框           headerStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);// 右边框                    //正文样式         HSSFCellStyle cell_Style = (HSSFCellStyle) workbook .createCellStyle();// 设置字体样式           cell_Style.setAlignment(HSSFCellStyle.ALIGN_CENTER);           cell_Style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 垂直对齐居中           cell_Style.setWrapText(true); // 设置为自动换行           HSSFFont cell_Font = (HSSFFont) workbook.createFont();           cell_Font.setFontName("宋体");           cell_Font.setFontHeightInPoints((short) 12);           cell_Style.setFont(cell_Font);           cell_Style.setBorderBottom(HSSFCellStyle.BORDER_THIN); // 下边框           cell_Style.setBorderLeft(HSSFCellStyle.BORDER_THIN);// 左边框           cell_Style.setBorderTop(HSSFCellStyle.BORDER_THIN);// 上边框           cell_Style.setBorderRight(HSSFCellStyle.BORDER_THIN);// 右边框                    // 设置标题         for (int i = 0; i < columnTitleList.length; i++) {             HSSFCell cell = row.createCell(i);             cell.setCellStyle(headerStyle);             cell.setCellValue(columnTitleList[i]);             sheet.setColumnWidth(i, 256 * 20);             row.setHeight((short) (256*2));         }                  int n = 0;         try {             for (Map<String, Object> map : data) {                 row = sheet.createRow(++n);                 for (int i = 0; i < columnCodeList.length; i++) {                     HSSFCell cell = row.createCell(i);                     cell.setCellStyle(cell_Style);                     if (map.get(columnCodeList[i]) != null) {                         cell.setCellValue(map.get(columnCodeList[i]).toString());                     } else {                         cell.setCellValue("");                     }                 }             }         } catch (IllegalArgumentException e) {             e.printStackTrace();         }         OutputStream os = null;         try {             response.reset();             response.setHeader("Content-Type", "application/vnd.ms-excel; charset=utf-8");             response.setHeader("Content-Disposition",                     "attachment; filename=" + URLEncoder.encode(fileName, "UTF-8") + ".xls");             os = response.getOutputStream();             workbook.write(os);         } catch (IOException e) {             e.printStackTrace();         } finally {             try {                 if (os != null) {                     os.flush();                     os.close();                 }             } catch (Exception e) {                 e.printStackTrace();             }         }     } }


POI导出工具类

标签:JAVA   POI   

原文地址:http://blog.51cto.com/3786902/2104014

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!