zoukankan      html  css  js  c++  java
  • java将list<T>导出为xls文件

    一.action层

    /**
    * 导出list
    */
    @SuppressWarnings("unchecked")
    public void exportBatch() {
    request = ServletActionContext.getRequest();
    response = ServletActionContext.getResponse();
    String batchNo = request.getParameter("batchNo");


    try {

    //查询导出List<T>列
    exportlList = this.batchService.findExportBatchService(batchNo);
    } catch (Exception e) {
    e.printStackTrace();
    }

    //导出表格
    HSSFWorkbook wb = batchService.exportBatch(exportlList);
    File xlsFile = new File("D://" + "fielName.xls");

    try {
    FileOutputStream fos = new FileOutputStream(xlsFile);
    wb.write(fos);
    fos.close();
    } catch (FileNotFoundException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }

    try {
    String fileName = "fielName.xls";
    response.setCharacterEncoding("utf-8");
    response.setContentType("multipart/xls");
    response.setHeader("Location", fileName);
    response.setHeader("Content-Disposition", "attachment;fileName="+ new String((xlsFile.getName()).getBytes("UTF-8")));
    ServletOutputStream os = response.getOutputStream();
    BufferedOutputStream bos = new BufferedOutputStream(os);
    FileInputStream fis = new FileInputStream(xlsFile);
    byte[] b = new byte[1000];
    int length;
    while ((length = fis.read(b)) > 0) {
    bos.write(b, 0, length);
    }
    os.flush();
    bos.flush();
    os.close();
    bos.close();
    fis.close();
    xlsFile.delete();
    } catch (Exception e1) {
    e1.printStackTrace();
    }
    }

    二、serviceImpl层

    /**
    * 导出Excel
    */
    @SuppressWarnings("deprecation")
    public HSSFWorkbook exportBatch(List<SecurityCode> list) {

    //获取客户端访问路径
    String qRCodeUrl="http://www.baidu.com";

    // 第一步,创建一个webbook,对应一个Excel文件
    HSSFWorkbook wb = new HSSFWorkbook();
    // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet

    String cardInfoName = "sheet页名";

    HSSFSheet sheet = wb.createSheet(cardInfoName);

    // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
    HSSFRow row = sheet.createRow((int) 0);

    // 第四步,创建单元格,并设置值表头 设置表头居中
    HSSFCellStyle style = wb.createCellStyle();
    style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
    HSSFCell cell = row.createCell((short) 0);

    //"列名一、"列名二、"列名三、"列名四、"列名五、"列名六。
    cell.setCellValue("列名一");
    cell.setCellStyle(style);

    cell = row.createCell((short) 1);
    cell.setCellValue("列名一");
    cell.setCellStyle(style);

    cell = row.createCell((short) 2);
    cell.setCellValue("列名一");
    cell.setCellStyle(style);

    cell = row.createCell((short) 3);
    cell.setCellValue("列名一");
    cell.setCellStyle(style);

    cell = row.createCell((short) 4);
    cell.setCellValue("列名一");
    cell.setCellStyle(style);

    cell = row.createCell((short) 5);
    cell.setCellValue("列名一");
    cell.setCellStyle(style);

    cell = row.createCell((short) 6);
    cell.setCellValue("列名一");
    cell.setCellStyle(style);

    for (int i = 0; i < list.size(); i++) {

    row = sheet.createRow((int) i + 1);
    SecurityCode m = list.get(i);
    row.createCell((short) 0).setCellValue(i + 1);
    row.createCell((short) 1).setCellValue(m.getBatchNo() == null || "null".equals(m.getBatchNo()) ? "" : m.getBatchNo().toString());
    row.createCell((short) 2).setCellValue(m.getProductNo() == null || "null".equals(m.getProductNo() ) ? "" : m.getProductNo() .toString());
    row.createCell((short) 3).setCellValue(m.getProductName() == null|| "null".equals(m.getProductName()) ? "" : m.getProductName().toString());
    row.createCell((short) 4).setCellValue(m.getCreateTime() == null|| "null".equals(m.getCreateTime()) ? "" : m.getCreateTime().toString());
    row.createCell((short) 5).setCellValue(m.getSecurityNo() == null|| "null".equals(m.getSecurityNo()) ? "" : m.getSecurityNo().toString());
    row.createCell((short) 6).setCellValue(qRCodeUrl == null|| "null".equals(qRCodeUrl) ? "" :qRCodeUrl.toString()+m.getSecurityNo());
    }

    return wb;

    }

  • 相关阅读:
    对NETIF_F_GSO的一些理解
    关于ptype_all和pypte_base中的pt_prev的说明[转]
    linux网络收包过程
    linux的pci驱动模型
    linux内核的冷热页分配器
    linux的bootmem内存管理
    GitHub 下载代码命令并且导入到IDEA环境
    配置Log4j(非常具体)
    sudo:有效用户 ID 不是 0,sudo 属于 root 并设置了 setuid 位吗?
    RMP和YUM软件安装
  • 原文地址:https://www.cnblogs.com/guangxiang/p/10338188.html
Copyright © 2011-2022 走看看