java实现导出多sheet的excel小实例

   根据系统需要,将不同班级的学生导出到excel中,并按照班级名称分成不同的sheet表,下面是实现代码:


[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <span style="font-size:18px;">public static void outputExcelData() throws IOException, WriteException {  
  2.         /**定义需要导出的实体*/  
  3.         List result = new ArrayList();  
  4.         User user = new User();  
  5.         user.setId("1");  
  6.         user.setName("yfli");  
  7.         result.add(user);  
  8.         User user2 = new User();  
  9.         user2.setId("1");  
  10.         user2.setName("zhangjie");  
  11.         result.add(user2);  
  12.         User user3 = new User();  
  13.         user3.setId("1");  
  14.         user3.setName("lzhang");  
  15.         result.add(user3);  
  16.       
  17.     //创建文件本地文件     
  18.         String fileName = "F:\\sfData.xls";  
  19.   
  20.         //首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象        
  21.         WritableWorkbook wwb = Workbook.createWorkbook(new File(fileName));  
  22.         File dbfFile = new File(fileName);  
  23.         if (!dbfFile.exists() || dbfFile.isDirectory()) {  
  24.             dbfFile.createNewFile();  
  25.         }  
  26.   
  27.         int totle = result.size();//获取List集合的size  
  28.         int mus = 2;//每个工作表格最多存储2条数据(注:excel表格一个工作表可以存储65536条)  
  29.         int avg = totle / mus;  
  30.         for (int i = 0; i < avg + 1; i++) {  
  1.             WritableSheet ws = wwb.createSheet("列表" + (i + 1), i);  //创建一个可写入的工作表    
  2.   
  3.             //添加excel表头  
  4.             ws.addCell(new Label(00"序号"));   
  5.             ws.addCell(new Label(10"姓名"));  
  6.             int num = i * mus;   
  7.             int index = 0;   
  8.             for (int m = num; m < result.size(); m++) {  
  9.                 if (index == mus) {//判断index == mus的时候跳出当前for循环  
  10.                     break;  
  11.                 }  
  12.                 User use = (User) result.get(m);  
  13.   
  14.         //将生成的单元格添加到工作表中   
  15.         //(这里需要注意的是,在Excel中,第一个参数表示列,第二个表示行)       
  16.                 ws.addCell(new Label(0, index + 1, use.getId()));  
  17.                 ws.addCell(new Label(1, index + 1, use.getName()));  
  18.                 index++;  
  19.             }  
  20.         }  
  21.         wwb.write();//从内存中写入文件中     
  22.         wwb.close();//关闭资源,释放内存        
  23.     }</span>  

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值