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

POI导出工具类

标签:
Java

         

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();            }        }    }}


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消