我是靠谱客的博主 矮小水杯,这篇文章主要介绍java导出excel,超60000行进入下一sheet,现在分享给大家,希望可以做个参考。

java导出excel,超60000行进入下一sheet

由于老版本poi对Excel的行数有限制为65536行,所以将其数据做成多个sheet导出

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
public static void creatExcel(List<MMap> maps, String filePath) { // 第一步,创建一个webbook,对应一个Excel文件 HSSFWorkbook wb = new HSSFWorkbook(); for (MMap map : maps) { List<String> titleList = (List<String>) map.getObj(); List<List<String>> values = (List<List<String>>) map.getObj1(); int sheetSize = 60000;// 限制一个sheet,最多60000行数据 int sheetNum = values.size() / sheetSize + 1;// 得到一共几个sheet for (int j = 1; j <= sheetNum; j++) {// j表示第几个sheet int size = sheetSize; if (j == sheetNum) { size = values.size() % sheetSize; } String sheetTitle = (String) map.getObj2(); // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet HSSFSheet sheet = wb.createSheet(sheetTitle + j); sheet.setDefaultColumnWidth(20); // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short HSSFRow row = sheet.createRow((int) 0); // 第四步,创建单元格,并设置值表头 设置表头居中 HSSFCellStyle style = wb.createCellStyle(); style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式 if (titleList != null && titleList.size() > 0) { // 标题 for (int i = 0; i < titleList.size(); i++) { HSSFCell cell = row.createCell(i); cell.setCellValue(titleList.get(i)); cell.setCellStyle(style); } } // 值 if (values != null && values.size() > 0) { for (int i = 0; i < size; i++) { row = sheet.createRow((int) i + 1); List<String> value = values.get(i+(j-1)*sheetSize); for (int k = 0; k < value.size(); k++) { HSSFCell cell = row.createCell(k); cell.setCellValue(value.get(k)); cell.setCellStyle(style); } } } } } // 第六步,将文件存到指定位置 try { FileOutputStream fout = new FileOutputStream(filePath); wb.write(fout); fout.close(); } catch (Exception e) { e.printStackTrace(); } }

/****************************一般方法*****有限制为65536行*******************/

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
public static void creatExcel_old(List<MMap> maps,String filePath){ // 第一步,创建一个webbook,对应一个Excel文件 HSSFWorkbook wb = new HSSFWorkbook(); for (MMap map : maps) { List<String> titleList = (List<String>) map.getObj(); List<List<String>> values = (List<List<String>>) map.getObj1(); String sheetTitle = (String) map.getObj2(); // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet HSSFSheet sheet = wb.createSheet(sheetTitle); sheet.setDefaultColumnWidth(20); // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short HSSFRow row = sheet.createRow((int) 0); // 第四步,创建单元格,并设置值表头 设置表头居中 HSSFCellStyle style = wb.createCellStyle(); //style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式 if(titleList!=null&&titleList.size()>0){ //标题 for(int i =0;i<titleList.size();i++){ HSSFCell cell = row.createCell(i); cell.setCellValue(titleList.get(i)); cell.setCellStyle(style); } } //值 if(values!=null&&values.size()>0){ for (int i = 0; i < values.size(); i++){ row = sheet.createRow((int) i + 1); List<String> value = values.get(i); for(int k=0;k<value.size();k++){ HSSFCell cell = row.createCell(k); cell.setCellValue(value.get(k)); cell.setCellStyle(style); } } } } // 第六步,将文件存到指定位置 try { FileOutputStream fout = new FileOutputStream(filePath); wb.write(fout); fout.close(); } catch (Exception e) { e.printStackTrace(); } }

 

最后

以上就是矮小水杯最近收集整理的关于java导出excel,超60000行进入下一sheet的全部内容,更多相关java导出excel内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(90)

评论列表共有 0 条评论

立即
投稿
返回
顶部