Java Excel util

public static boolean saveExcelMutiSheet(Map<String, List<Map<String, Object>>> dataMap, String fileName) {
    if (dataMap == null || dataMap.isEmpty())
        return false;
    // 第一步,创建一个webbook,对应一个Excel文件
    HSSFWorkbook wb = new HSSFWorkbook();
    for (Map.Entry<String, List<Map<String, Object>>> entry : dataMap.entrySet()) {
        List<Map<String, Object>> data = entry.getValue();
        String sheetName = entry.getKey();
        // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
        HSSFSheet sheet = wb.createSheet(sheetName);
        // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
        HSSFRow row = sheet.createRow(0);
        // 第四步,创建单元格,并设置值表头 设置表头居中
        HSSFCellStyle style = wb.createCellStyle();
        style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
        int column = 0;
        for (String str : data.get(0).keySet()) {
            HSSFCell cell = row.createCell(column++);
            cell.setCellValue(str);
            cell.setCellStyle(style);
        }
        // 第五步,写入实体数据 实际应用中这些数据从数据库得到,
        int rowNum = 1;
        for (Map<String, Object> map : data) {
            row = sheet.createRow(rowNum++);
            int columnNum = 0;// 第四步,创建单元格,并设置值
            for (Object value : map.values()) {
                if (value == null) {
                    row.createCell(columnNum++).setCellValue("null");
                } else {
                    row.createCell(columnNum++).setCellValue(value.toString());
                }
            }
        }
    }
    // 第六步,将文件存到指定位置
    try {
        FileOutputStream fout = new FileOutputStream(fileName);
        wb.write(fout);
        fout.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return true;
}

转载于:https://my.oschina.net/u/1778309/blog/1505947

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值