网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
可签
7
级以上的吧
50
个
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
01月14日
漏签
0
天
java吧
关注:
1,294,523
贴子:
12,830,154
看贴
图片
吧主推荐
视频
游戏
首页
上一页
1
2
3
4
114
回复贴,共
4
页
,跳到
页
确定
<返回java吧
>0< 加载中...
回复:自学贴,同道请进。
只看楼主
收藏
回复
行风视频
淼淼淼水
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
前天用POI从数据库导出数据到Excel,数据量达到10万级别就会抛内存溢出异常,
今天,好好研究了一下,原来POI3.8以上的版本已经修正了这个功能,
已实现数据量百万级的导出
千万级的导出只能多Sheet页了,2007以上版本的Excel只能支持1048576行数据。
48楼
2015-09-23 23:28
回复
收起回复
行风视频
淼淼淼水
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
楼主已实现百万级数据的导出 。
多Sheet页,已实现500万数据量的导出,理论上无限制,
只是数据量太大,Excel打开太慢了、、、
50楼
2015-09-23 23:31
回复
收起回复
2026-01-14 03:18:35
广告
不感兴趣
开通SVIP免广告
行风视频
淼淼淼水
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
代码贴出来,大家多多指点
51楼
2015-09-23 23:32
回复
收起回复
行风视频
淼淼淼水
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
import java.sql.*;
import java.io.*;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class shuchu{
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
Imp imp=new Imp();
imp.Exc1();
imp=null;
System.gc();
}
}
class Imp{
@SuppressWarnings("resource")
public void Exc1(){
int pageNow=1;
int pageSize=1048576;
int i=0;
int k=0;
int sheets=0;
int count=0;
@SuppressWarnings("unused")
int pageCount=0;
String table="c_meter";
Connection ct=null;
PreparedStatement ps=null;
ResultSet rs=null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
ct=DriverManager.getConnection("jdbc:oracle:thin:@LENOVO-PC:1521:orcl","sjhc","sjhc");
String sql="select * from (select t.*,rownum rn from (select * from c_meter) t where rownum<=?) where rn>=?";
//计算要导出的表共有多少列数据
int column=0;
ps=ct.prepareStatement("select max(column_id) from user_tab_columns where table_name=upper('c_meter')");
rs=ps.executeQuery();
while(rs.next()){
column=rs.getInt(1);
}
//计算要导出的表共有多少行数据
ps=ct.prepareStatement("select count(*) from c_meter");
rs=ps.executeQuery();
while(rs.next()){
count=rs.getInt(1);
}
//进行分页,每页为2007版Excel中sheet页最大存放行数,即1048576行数据
if(count%pageSize==0){
sheets=count/pageSize;
}else{
sheets=count/pageSize+1;
}
Workbook workbook = new SXSSFWorkbook(500);//每次缓存500条到内存,其余写到磁盘。
System.out.println(table+"表导出开始、、");
//循环导出Sheet页数据
for(k=0;k<sheets;k++){
int m=0;
int start = pageSize*(pageNow-1)+1;
int end = pageSize*pageNow;
ps=ct.prepareStatement(sql);
ps.setInt(1, end);
ps.setInt(2, start);
rs=ps.executeQuery();
Sheet sheet = workbook.createSheet("sheet"+(k+1));
System.out.println("正在导出sheet"+(k+1));
while(rs.next()){
Row xssfrow=sheet.createRow(m);
for(int j=0;j<column;j++){
Cell xssfcell0=xssfrow.createCell((short)j);
xssfcell0.setCellValue(rs.getString(j+1));
}
start++;
i++;
m++;
}
pageNow++;
}
FileOutputStream fOut = new FileOutputStream("C:/Users/lenovo/Desktop/"+table+".xlsx");
//FileOutputStream fileoutputstreamx=new FileOutputStream("C:/Users/lenovo/Desktop/西安计量箱表关系合并.xlsx");
workbook.write(fOut);
fOut.close();
System.out.println("导出"+i+"条数据成功、、");
System.gc();
}catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(ps!=null){
try {
ps.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(ct!=null){
try {
ct.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
52楼
2015-09-23 23:32
回复
收起回复
行风视频
淼淼淼水
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
大神都来看看了,多多指点
53楼
2015-09-23 23:33
回复
收起回复
行风视频
淼淼淼水
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
水一贴也好啊
来自
Android客户端
54楼
2015-09-23 23:37
回复
收起回复
行风视频
淼淼淼水
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
唉哟哟哟
来自
Android客户端
55楼
2015-09-23 23:46
回复
收起回复
懒无所谓
沝
2
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
你已接近大神了
IP属地:江西
来自
Android客户端
56楼
2015-09-23 23:50
回复
收起回复
2026-01-14 03:12:35
广告
不感兴趣
开通SVIP免广告
行风视频
淼淼淼水
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
大神都休息了
来自
Android客户端
57楼
2015-09-24 00:00
回复
收起回复
rwjyj
淼淼
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
想问楼主学习Javase用了多久,学完se后到了什么程度,比喻能编出坦克大战吗,学Javaweb又用了多久,哪些是需要重点学习的,Java新手求解答
IP属地:湖北
来自
Android客户端
58楼
2015-09-24 00:20
回复(2)
收起回复
淤了槐05
淼淼水
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
卤煮写错了 div+css
来自
Android客户端
59楼
2015-09-24 00:32
回复(1)
收起回复
乌索普君的鼻子
淼淼
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
好多的样子 不懂
来自
Android客户端
60楼
2015-09-24 00:36
回复(1)
收起回复
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧热议榜
1
彩礼逆天论:1年养育=1万彩礼
1985430
2
真败家!娇妻竟挪97万养野男
1681072
3
反向催生,退休人员产检可报销
1403304
4
小孩哥硬核追爱,房产当礼物送人
1014228
5
版本真神,鸣潮爱弥斯技能曝光
906620
6
领导狂揽30w,员工质疑反遭打
668075
7
LPL死期将至!3大金主集体跑路
480312
8
逆天网红店公然拒接男客
361077
9
懂王出手狠辣,鲍威尔惨遭调查
319880
10
《逆战:未来》双端今日上线!
275730
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示