zoukankan      html  css  js  c++  java
  • poi导出excel

    /**
         * 文件下载
         *
         * @param response
         * @param list      查询数据集合
         * @param filename  文件名前缀
         * @param title     属性名称
         * @param strTitleE 属性
         * @throws Exception
         */
        public static void export(HttpServletResponse response, List list, String filename, List<String> title, String[] strTitleE) throws Exception {
            int[] widths = {15, 15, 15, 15};
            XSSFWorkbook wb = new XSSFWorkbook();
            // 设置列宽
            XSSFSheet sheet = setSheet(wb, filename, widths);
            //XSSFSheet sheet = wb.createSheet(filename);
            // 设置Excel表格头数据
            setTitleRowData(wb, sheet, title);
            setRowData(wb, sheet, list, strTitleE);
            // 导出Excel(单工作表)
            exportToExcel(response, wb, filename);
        }
    /**
         * 设置列宽 <br />
         *
         * @param workbook
         * @param sheetTitle
         * @param widths
         * @return
         */
        public XSSFSheet setSheet(XSSFWorkbook workbook, String sheetTitle, int[] widths) {
            XSSFSheet sheet = workbook.createSheet(sheetTitle);// 建立新的sheet对象
            for (int i = 0; i < widths.length; i++) {
                sheet.setColumnWidth(i, (int) 256 * widths[i]);
            }
            return sheet;
        }
     /**
         * 设置Excel表格头数据 <br />
         *
         * @param workbook
         * @param sheet
         * @param titles
         * @throws Exception
         */
        public void setTitleRowData(XSSFWorkbook workbook, XSSFSheet sheet, List<String> titles) {
            XSSFRow rowTitle = sheet.createRow(0);// 建立新行
            XSSFCellStyle cellStyle = setCellStyle(workbook);
            for (int i = 0; i < titles.size(); i++) {
                XSSFCell cell = rowTitle.createCell(i);
                // cell.setEncoding(HSSFCell.ENCODING_UTF_16); //设置cell编码解决中文高位字节截断
                cell.setCellValue(titles.get(i));
                cell.setCellStyle(cellStyle);
            }
        }
    /**
         * 为Excel添加行数据 <br />
         *
         * @param workbook
         * @param sheet
         * @param lists
         * @throws Exception
         */
        @SuppressWarnings({"rawtypes", "unchecked"})
        public void setRowData(XSSFWorkbook workbook, XSSFSheet sheet, List lists, String[] valueField) throws Exception {
            if (valueField == null || valueField.length < 1) {
                setRowData(workbook, sheet, lists);
            }
            for (int i = 1; i <= lists.size(); i++) {
                // HSSFRow row = sheet.createRow((short)i);//建立新行
                XSSFRow row = sheet.createRow(i); // 不用short类型,支持大数据量导出
                Object obj = lists.get(i - 1);
                Class clazz = obj.getClass();
                int index = 0;
                for (int j = 0; j < valueField.length; j++) {
                    Method method = clazz.getMethod("get" + valueField[j].substring(0, 1).toUpperCase() + valueField[j].substring(1));
                    Object objValue = method.invoke(lists.get(i - 1));
                    XSSFCell cell = row.createCell(index);
                    if (objValue != null) {
                        cell.setCellValue(objValue.toString());
                    }
                    index++;
                }
            }
        }
    /**
         * 导出Excel(单工作表)
         *
         * @param response
         * @param title
         * @throws Exception
         */
        public static void exportToExcel(HttpServletResponse response, XSSFWorkbook workbook, String title)
                throws Exception {
            try {
                String time = (new SimpleDateFormat("yyyyMMddHHmm")).format(new Date());
                String sFileName = new String((title + "_" + time + ".xls").getBytes("gbk"), "ISO-8859-1");
                response.setHeader("Content-Disposition", "attachment;filename=".concat(sFileName));
                response.setHeader("Connection", "close");
                response.setHeader("Content-Type", "application/vnd.ms-excel");
                workbook.write(response.getOutputStream());
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                workbook.close();
            }
        }

      

    //调用导出的方法
    @RequestMapping("/exportList")
    @ResponseBody
    public void downDsMapPub(HttpServletResponse response){
      //list 表示查询的集合
      //titleList 表示导出的字段的中文名
       //strTitle 表示导出的字段,必须与实体类上的名字相对应
      //fileName 表示导出的文件名 ExcelUtils.export(response,list,fileName,titleList,strTitle); }

      

  • 相关阅读:
    JavaWeb学习笔记--2.3内置对象
    JavaWeb学习笔记--2.jsp指令元素、动作元素、内置对象
    JavaWeb学习笔记--Servlet代码集
    JavaWeb学习笔记--HttpServletRequest、HttpServletResponse对象常用方法
    JavaWeb学习笔记-使用HttpSession对象跟踪会话
    Servlet接收JSP参数乱码问题解决办法
    Java笔记--File,FileInputStream,FileReader,InputStreamReader,BufferedReader 的使用和区别
    Java笔记--java一行一行写入或读取数据
    Java笔记--Java的List、Iterator用法
    Scala学习笔记--List、ListBuffer
  • 原文地址:https://www.cnblogs.com/bingrong/p/7699854.html
Copyright © 2011-2022 走看看