美文网首页
java用POI操作Excel

java用POI操作Excel

作者: 请叫我木头哥 | 来源:发表于2017-12-15 11:38 被阅读0次

    //首先要找到poi的jar包

    //去官网下载jar包https://poi.apache.org/download.html

    //访问导出数据方法

    public string teadownload(FinanceTeapartyReimburs financeTeapartyReimburs, HttpServletResponse response,HttpServletRequest request) {// 

    //查询要导出的数据

    List<FinanceTeapartyReimburs>  page = financeTeapartyReimbursService.findList(financeTeapartyReimburs);

    HSSFWorkbook wb = new HSSFWorkbook();// 第一步,创建一个webbook,对应一个Excel文件

    HSSFSheet sheet = wb.createSheet("春节茶话会"); // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet

    FinanceDowload.teaDownloadExcel( response, sheet, wb, page);// ,这里可建多个sheet页

    String name = "春节茶话会.xls";//定义文件名字

    try {

    //文件名称转格式,导出是中文,不定义导出为乱码。

            response.setHeader("Content-Disposition", "attachment;filename=" + new String(name.getBytes("gb2312"), "ISO8859-1") + "");//

    } catch (UnsupportedEncodingException e1) {

            // TODO Auto-generated catch block

            e1.printStackTrace();

    }

    try {

        wb.write(response.getOutputStream()); 

        response.getOutputStream().flush();

        response.getOutputStream().close();

    } catch (IOException e) {

        e.printStackTrace();

    }

    return "SUCCESS";

    }


    public static void downloadExcel(HttpServletResponse response, HSSFSheet sheet, HSSFWorkbook HSSFWorkbook,Listpage) {

            sheet.autoSizeColumn(1);//

    // 设置单元格大小

             sheet.setColumnWidth(1, 100 * 45);

             sheet.setColumnWidth(2, 100 * 45);

             sheet.setColumnWidth(3, 100 * 45);

             sheet.setColumnWidth(4, 100 * 45);

             sheet.setColumnWidth(5, 100 * 45);

             sheet.setColumnWidth(6, 100 * 45);

             sheet.setColumnWidth(7, 100 * 45);

    // 创建一个居中格式,在需要其他样式可以添加

        HSSFCellStyle style = HSSFWorkbook.createCellStyle();

        style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//设置水平居中样式

        style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);

    // 创建第一行第三个单元格

        HSSFRow rowHeard1 = sheet.createRow(0);// 创建第一行

        HSSFCell cell1 = rowHeard1.createCell(0);// 创建第二行第1个单元格

        HSSFCell cell2 = rowHeard1.createCell(1);// 创建第二行第2个单元格

        HSSFCell cell3 = rowHeard1.createCell(2);// 创建第二行第3个单元格

        HSSFCell cell4 = rowHeard1.createCell(3);// 创建第二行第4个单元格

        HSSFCell cell5 = rowHeard1.createCell(4);// 创建第二行第5个单元格

        HSSFCell cell6 = rowHeard1.createCell(5);// 创建第二行第6个单元格

        HSSFCell cell7 = rowHeard1.createCell(6);// 创建第二行第6个单元格

    // 在该单元格内输入内容

    //创建表头,不需要循环

        cell1.setCellValue("序号");//第一单元格填写数据

        cell1.setCellStyle(style);//添加单元格的样式

        cell2.setCellValue("经办人");

        cell2.setCellStyle(style);

        cell3.setCellValue("领款人");

        cell3.setCellStyle(style);

        cell4.setCellValue("报销事由");

        cell4.setCellStyle(style);

        cell5.setCellValue("金额");

        cell5.setCellStyle(style);

        cell6.setCellValue("报销时间");

        cell6.setCellStyle(style);

        cell7.setCellValue("备注");

        cell7.setCellStyle(style);

    if (page != null && page.size() > 0) { //循环遍历查询出来的数据

        for (int j = 0; j < page.size(); j++) {

            FinanceMaintenanceReimburs cl = page.get(j);

            HSSFRow rowHeard = sheet.createRow(j+1);// 创建第二行

            HSSFCell cellHeard1 = rowHeard.createCell(0);// 创建第二行第1个单元格

            HSSFCell cellHeard2 = rowHeard.createCell(1);// 创建第二行第2个单元格

            HSSFCell cellHeard3 = rowHeard.createCell(2);// 创建第二行第3个单元格

            HSSFCell cellHeard4 = rowHeard.createCell(3);// 创建第二行第4个单元格

    // 在该单元格内输入内容

            cellHeard1.setCellValue(j+1); //序号

    //名字 在创建单元格里面填充数据,

            cellHeard2.setCellValue(cl.getName()==null?"":cl.getName().toString());

    //年龄

            cellHeard3.setCellValue(cl.getAge==null?"":cl.getAge().toString());

    //性别

            cellHeard4.setCellValue(cl.getSex()==null?"":cl.getSex().toString());

    //金额

            cellHeard5.setCellValue(cl.getAmount()==null?"":cl.getAmount().toString());

            }

        }

    }

    相关文章

      网友评论

          本文标题:java用POI操作Excel

          本文链接:https://www.haomeiwen.com/subject/prbrwxtx.html