zoukankan      html  css  js  c++  java
  • poi 导出文件

    1、response设置文件类型和header

           //
    • HSSFWorkbook(处理97(-2007) 的.xls)
    • XSSFWorkbook(处理2007 OOXML (.xlsx) )


    response.setHeader("Content-Disposition", "attachment; filename=" + newFilename); response.setContentType("application/vnd.ms-excel; charset=utf-8"); try (OutputStream output = response.getOutputStream()) { LazadaCancelOrderItemUtils.exportExcel(output, lazadaCancelOrderItems, domain); }

    2、写文件

           // 建立新HSSFWorkbook对象 这里使用 try(){}==>try块退出时,会自动调用res.close()方法,关闭资源。
            try (XSSFWorkbook wb = new XSSFWorkbook())
            {
                // 建立新的XSSFSheet对象
                XSSFSheet sheet = wb.createSheet();
    
                XSSFRow titleRow = sheet.createRow(0);
    
                XSSFCell cell = null;
    
                // 表头字段列表
                String[] titles = new String[]{"归属部门", "卖家账号", "平台站点", "平台订单号", "产品标识", "产品SKU", "明细状态", "售出时间"};
    
                // 写表头
                for (int i = 0; i < titles.length; i++)
                {
                    cell = titleRow.createCell(i);
                    cell.setCellValue(titles[i]);
                }
    
                int rowNum = 1;
                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    
                // 表数据
                for (LazadaCancelOrderItem item : lazadaCancelOrderItems)
                {
                    int cellNum = 0;
                    XSSFRow row = sheet.createRow(rowNum++);
    
                    // 归属部门
                    cell = row.createCell(cellNum++);
                    Integer deptId = item.getDeptId();
                    if (deptId != null)
                    {
                        Department department = DepartmentUtils.getDepartment(deptId);
                        if (department != null)
                        {
                            cell.setCellValue(department.getDepartmentName());
                        }
                    }
    
                    // 卖家账号
                    cell = row.createCell(cellNum++);
                    cell.setCellValue(item.getAccount());
    
                    // 平台站点
                    cell = row.createCell(cellNum++);
                    LazadaSiteEnum build = LazadaSiteEnum.build(item.getSite());
                    String site = build != null ? build.display() : item.getSite();
                    cell.setCellValue(site);
    
                    // 平台订单号
                    cell = row.createCell(cellNum++);
                    cell.setCellValue(item.getPlatformOrderId());
    
                    // 产品标识
                    cell = row.createCell(cellNum++);
                    cell.setCellValue(item.getProductId());
    
                    // 产品SKU
                    cell = row.createCell(cellNum++);
                    cell.setCellValue(item.getSku());
    
                    // 明细状态
                    cell = row.createCell(cellNum++);
                    cell.setCellValue(item.getStatus());
    
                    // 售出时间
                    cell = row.createCell(cellNum);
                    cell.setCellValue(dateFormat.format(item.getSaleTime()));
                }
    
                // 写入Excel
                wb.write(output);
            }
  • 相关阅读:
    移动端rem布局
    父子组件通信
    拦截器
    Vue路由教程
    使用var和let的区别
    数组去重的几种方法
    利用位运算进行权限控制
    线程基础
    关于get请求的乱码问题
    nuxt.js Navigating to current location ("/xxx") is not allowed
  • 原文地址:https://www.cnblogs.com/zrboke/p/15303212.html
Copyright © 2011-2022 走看看