Java Jxl Excel 操作总结5(项目实例二)

本文介绍了一种使用Java批量将List数据导出为Excel文件的方法。通过创建多个工作表来处理超过65535条记录的数据集,确保了数据的完整性和Excel文件的可用性。代码示例详细展示了如何利用JExcelApi库实现这一功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第二步:创建工作薄和创建工作表和定义fillsheet的方法


public static <T> void listToExcel(List<T> list,LinkedHashMap<String, String> fieldMap, String sheetName,int sheetSize, OutputStream out) throws Exception {  
if (list.size() == 0 || list == null) {  
throw new Exception("数据源中没有任何数据");  
}  
// 创建工作簿并发送到OutputStream指定的地方  
WritableWorkbook wwb;  
try {  
wwb = Workbook.createWorkbook(out);  
   // 因为2003的Excel一个工作表最多可以有65536条记录,除去列头剩下65535条  
   // 所以如果记录太多,需要放到多个工作表中,其实就是个分页的过程  
   // 1.计算一共有多少个工作表  
   double sheetNum = Math.ceil(list.size()/ new Integer(sheetSize).doubleValue());  
    // 2.创建相应的工作表,并向其中填充数据  
   for (int i = 0; i < sheetNum; i++) {  
   if (1 == sheetNum)// 如果只有一个工作表的情况  
       {  
         WritableSheet sheet = wwb.createSheet(sheetName, i);  
         fillSheet(sheet, list, fieldMap, 0, list.size() - 1);  
       }   
   else// 有多个工作表的情况  
      {  
        WritableSheet sheet = wwb.createSheet(sheetName + (i + 1),i);  
        // 获取开始索引和结束索引  
        int firstIndex = i * sheetSize;  
        int lastIndex = (i + 1) * sheetSize - 1 > list.size() - 1 ? list.size() - 1 : (i + 1) * sheetSize - 1;  
        // 填充工作表  
        fillSheet(sheet, list, fieldMap, firstIndex, lastIndex);  
       }  
   }  
   wwb.write();  
   wwb.close();  
   } catch (Exception e) {  
   e.printStackTrace();  
   if (e instanceof ExcelException) {  
   throw (ExcelException) e;// 如果是ExcelException,则直接抛出  
    } else {  
   throw new ExcelException("導出Excel失敗");// 否则将其它异常包装成ExcelException再抛出  
          }  
    }  
  }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值