Excel——读取——导出目录

/**
     * 导出Excel文件到具体的目录
     * <一句话功能简述>
     * <功能详细描述>
     * @param fileName 导出的文件名
     * @param sheetName 导出的签页名称
     * @param headMap 列表名映射Map(英文与中文的映射,key为英文,value为中文)
     * @param dataList 需要导出的数据集
     * @return
     * @see [类、类#方法、类#成员]
     * @author
     * @throws IOException 
     */
    public static String exportExcel(String fileName,String sheetName,LinkedHashMap<String, String> headMap,List<GenericValue> dataList) throws IOException {
        XSSFWorkbook workbook = null;
        FileOutputStream outputStream = null;
        
        workbook = new XSSFWorkbook();
        XSSFSheet sheet = workbook.createSheet(sheetName);
        
        int startRowLine=3;    //导出的数据从第三行开始填写,前面空两行
        int startCellLine=2;
        //生成表头相关的首行
        int startHeadCellLine=startCellLine;
        XSSFRow headRow = sheet.createRow(startRowLine);
        for(String key:headMap.keySet()) {
            headRow.createCell(startHeadCellLine).setCellValue(headMap.get(key));
            startHeadCellLine++;
        }
        startRowLine++;
        
        //将数据行填充到Excel中
        for(GenericValue gv:dataList) {
            int startDataCellLine=startCellLine;
            XSSFRow dataRow = sheet.createRow(startRowLine);
            for(String key:headMap.keySet()) {
                for(String gvk:gv.keySet()) {
                    if(key.equals(gvk)) {
                        dataRow.createCell(startDataCellLine).setCellValue(gv.getString(key));
                        startDataCellLine++;
                    }
                }
            }
            startRowLine++;
        }
        
        //保存文件到本地
        String filePath = ConstantFields.SFTP_PATH + fileName+"-"+System.currentTimeMillis()+".xlsx";
        File file = new File(filePath);
        if (!file.exists() && !file.isDirectory()) {
            file.mkdirs();
        }
        
        outputStream = new FileOutputStream(new File(filePath));
        workbook.write(outputStream);
        workbook.close();
        outputStream.flush();
        outputStream.close();
        return filePath;
    }    

 

转载于:https://www.cnblogs.com/gzhcsu/p/11126128.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值