java导出大批量(百万以上)数据的excel文件

更新时间:2023-07-20 21:07:18 阅读: 评论:0

java导出⼤批量(百万以上)数据的excel⽂件
本⽂实例为⼤家分享了java导出百万以上数据的excel⽂件,供⼤家参考,具体内容如下
1.传统的导出⽅式会消耗⼤量的内存,2003每个sheet页最多65536条数据,2007每个sheet页可以达到100万条数据以上,2007会在⽣成Workbook时清理数据,所以2007导出量更⼤;
2.可以导出多个excel⽂件到某个⽬录中,然后打包下载;
3.导出excel格式的xml⽂件,这种⽅式可以分批导出数据,适⽤于⼤批量数据的导出,以下简单介绍这种⽅式:
代码如下:
package com.epay.utils;
/**
* ⼤数据量导出成EXCEL或XML
既然的近义词* @author qad
* 2017-04-22
*/
import java.io.BufferedOutputStream;
中学教案网
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class Test {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
陈皮的药用try {
DataOutputStream rafs = new DataOutputStream(
new BufferedOutputStream(new FileOutputStream(new File(
"d://test.xls"))));
sb.append("<?xml version=\"1.0\" encoding=\"GBK\" ?>");
sb.append("\n");
sb.append("<?mso-application progid=\"Excel.Sheet\"?>");
sb.append("\n");
sb.append("<Workbook xmlns=\"urn:schemas-microsoft-com:office:spreadsheet\"");
sb.append("\n");
sb.append(" xmlns:o=\"urn:schemas-microsoft-com:office:office\"");
sb.append("\n");
sb.append(" xmlns:x=\"urn:schemas-microsoft-com:office:excel\"");
sb.append("\n");
sb.append(" xmlns:ss=\"urn:schemas-microsoft-com:office:spreadsheet\"");
sb.append("\n");
sb.append(" xmlns:html=\"www.w3/TR/REC-html40\">");
sb.append("\n");
sb.append("<DocumentProperties xmlns=\"urn:schemas-microsoft-com:office:office\"> ");
sb.append("\n");
sb.append(" <Styles>\n");
sb.append(" <Style ss:ID=\"Default\" ss:Name=\"Normal\">\n");
sb.append("  <Alignment ss:Vertical=\"Center\"/>\n");
sb.append("  <Borders/>\n");
sb.append("  <Font ss:FontName=\"宋体\" x:CharSet=\"134\" ss:Size=\"12\"/>\n");
sb.append("  <Interior/>\n");
sb.append("  <NumberFormat/>\n");
sb.append("  <Protection/>\n");
sb.append(" </Style>\n");
sb.append(" </Styles>\n");
int sheetcount = 0;
int recordcount = 65535;
int currentRecord = 0;
int total = 100000;
int col = 20;
sb.append("<Worksheet ss:Name=\"Sheet0\">");
sb.append("\n");
sb.append("<Table ss:ExpandedColumnCount=\"" + col
+ "\" ss:ExpandedRowCount=\"" + total
+ "\" x:FullColumns=\"1\" x:FullRows=\"1\">");
sb.append("\n");
for (int i = 0; i < total; i++) {
if ((currentRecord == recordcount
|| currentRecord > recordcount || currentRecord == 0)
&& i != 0) {// ⼀个sheet写满
currentRecord = 0;
rafs.String().getBytes());
sb.tLength(0);
sb.append("</Table>");
sb.append("<WorksheetOptions xmlns=\"urn:schemas-microsoft-com:office:excel\">");
sb.append("\n");
sb.append("<ProtectObjects>Fal</ProtectObjects>");
sb.append("\n");
sb.append("<ProtectScenarios>Fal</ProtectScenarios>");
焦虑症的治疗方法sb.append("\n");
sb.append("</WorksheetOptions>");
sb.append("\n");中国人寿寿险
sb.append("</Worksheet>");
sb.append("<Worksheet ss:Name=\"Sheet" + i / recordcount
+ "\">");
sb.append("\n");
sb.append("<Table ss:ExpandedColumnCount=\"" + col
+ "\" ss:ExpandedRowCount=\"" + recordcount
+ "\" x:FullColumns=\"1\" x:FullRows=\"1\">");
sb.append("\n");
}
sb.append("<Row>");
for (int j = 0; j < col; j++) {
System.out.println(i);
sb.append("<Cell><Data ss:Type=\"String\">111</Data></Cell>");
sb.append("\n");
}
sb.append("</Row>");
if (i % 5000 == 0) {
rafs.String().getBytes());
rafs.flush();
sb.tLength(0);
}
sb.append("\n");
代表英语怎么说currentRecord++;
}
rafs.String().getBytes());
sb.tLength(0);
sb.append("</Table>");
sb.append("<WorksheetOptions xmlns=\"urn:schemas-microsoft-com:office:excel\">");
sb.append("\n");
sb.append("<ProtectObjects>Fal</ProtectObjects>");
sb.append("\n");
sb.append("<ProtectScenarios>Fal</ProtectScenarios>");
sb.append("\n");
sb.append("</WorksheetOptions>");
sb.append("\n");
sb.append("</Worksheet>");
sb.append("</Workbook>");
sb.append("\n");
rafs.String().getBytes());
rafs.flush();
曹彰怎么死的
rafs.clo();
} catch (FileNotFoundException e) {
e.printStackTrace();
孕妇腿抽筋是怎么回事
} catch (IOException e) {
e.printStackTrace();
}
}
}
导出xml⽂件之后直接修改后缀名为.xlsx就可以直接打开,弊端:⽆法导出.xls格式的excel⽂件.以上只是⼀种简单想法,留待以后具体实现.
扩展:既然可以使⽤xml⽂件导出excel,那么导出csv⽂件之后也可以直接改后缀名为.xls,⽬前只是⼀种想法,尚未证实可⾏性.
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

本文发布于:2023-07-20 21:07:18,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1107656.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:office造句
下一篇:国际单位概念
标签:导出   数据   留待   想法   希望   有所   帮助
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图