java導出大數據量excel表格
A. java如何實現導出大數量EXCEL報表 數據大概100W條
好像是你的excel文件問題,你另外新建一個,再寫點東西在裡面試下隨便給你一個我以前用過的importjava.io.*;importjava.text.SimpleDateFormat;importjava.util.*;importjava.sql.*;importjava.util.Date;importjava.util.HashMap;importjava.util.Map;importjxl.*;publicclassSimUpdate{privateStringfileName;publicSimUpdate(StringfileName){this.fileName=fileName;}staticMaptNames;static{tNames=newHashMap();}//下面是主要代碼privatevoipdateDb(){try{Connectionconn=DbPool.connectDB();if(conn!=null){Statementstmt=conn.createStatement();/**********************************************/jxl.Workbookrwb=null;try{//構建Workbook對象只讀Workbook對象//直接從本地文件創建Workbook//從輸入流創建WorkbookInputStreamis=newFileInputStream(fileName);rwb=Workbook.getWorkbook(is);//Sheet(術語:工作表)就是Excel表格左下角的Sheet ,Sheet ,Sheet 但在程序中//Sheet的下標是從 開始的//獲取第一張Sheet表Sheetrs=rwb.getSheet( );//獲取Sheet表中所包含的總列數intrsColumns=rs.getColumns();//獲取Sheet表中所包含的總行數intrsRows=rs.getRows();//獲取指這下單元格的對象引用StringsimNumber="",termSeqId="";//指定SIM卡號及序列號for(inti= ;i ){System.out.println("成功插入第"+i+"條數據");}}}//以下代碼為寫入新的EXCEL,這里不使用,所以注釋/*//利用已經創建的Excel工作薄創建新的可寫入的Excel工作薄jxl.write.WritableWorkbookwwb=Workbook.createWorkbook(newFile("D://Book .xls"),rwb);//讀取第一張工作表jxl.write.WritableSheetws=wwb.getSheet( );//獲取第一個單元格對象jxl.write.WritableCellwc=ws.getWritableCell( , );//決斷單元格的類型,做出相應的轉化if(wc.getType()==CellType.LABEL){Labell=(Label)wc;l.setString("Thevaluehasbeenmodified.");}//寫入Excel對象wwb.write();wwb.close();*/}catch(Exceptione){e.printStackTrace();}finally{//操作完成時,關閉對象,翻譯佔用的內存空間rwb.close();}/*********************************************/}}catch(Exceptione){e.printStackTrace();}}}
B. Java實現導出excel功能,保證能夠導出10萬條以上數據
建議你分批次讀出數據(如1批次讀1000條數據),然後寫道excel中。
這樣的話數據量可以保證。
只是數據量太大了,效率低是肯定的。。。
C. java,poi導出excel大量數據會出錯(5000條)。
你查出的列可能有空的值,判斷一下吧,如果為null就添加一個"",應該是這個問題,我原來遇到過,它不允許你添加進單元格的值為null
D. java導出大數據量的excel而且excel有多個sheet,有什麼比較好的方法
PageOffice很不錯啊,網上有很多它的示例代碼搜搜看啊
E. java 上百萬的數據量如何導出到excel文件
一個sheet最多6W多行;所以你應該1W行一個sheet。
也可以導出為csv文件,這個會比較小點
F. 怎麼java大數據導出excel
jxl最多支持excel2003,所以單sheet最大的記錄數為65536;Office2007單sheet支持的記錄數已經超過100W了。
對於大批量數據,專我都是每次取65535條記屬錄出來(第一行有表頭)放在一個Sheet裡面。插入完畢後清空list再去取下一頁。
經測試,單文件多Sheet出現內存溢出比多文件單sheet的機率大得太多,伺服器的jvm怎麼得也要512以上。
G. 如何用java代碼生成一個大數據的excel文件
POI包解析 或者 只是xls的話 用 jxl 也行 poi 全支持 xls 和xlsx
然後寫入 保存 ok
HSSFSheet sheet= null;
for(int sherrt= 0; sherrt <wr.getNumberOfSheets();sherrt++){
sheet = wr.getSheetAt(sherrt); // 獲得sheet工作簿HSSFSheet
for(int i = 0 ; i<=sheet.getLastRowNum(); i++){
HSSFRow row = sheet.getRow(i);//獲得行數
Iterator o = row.iterator(); //得到每行的值
int j= 0 ;
while(o.hasNext()){
if(!key){
kk = o.next().toString();
if(StrC.getSimilarityRatio(kk, Vle[j])>0.7){j++;}
}else{
GetVAR[j] = o.next().toString();
j++;
}
}
這個是得到 也可以寫入
H. 請教一個java 操作excel大數據量的問題
POI3.8的SXSSF包是XSSF的一個擴展版本,支持流處理,在生成大數據量的電子表格且堆空間有限時使用。SXSSF通過限制內存中可訪問的記錄行數來實現其低內存利用,當達到限定值時,新一行數據的加入會引起老一行的數據刷新到硬碟。
比如內存中限制行數為100,當行號到達101時,行號為0的記錄刷新到硬碟並從內存中刪除,當行號到達102時,行號為1的記錄刷新到硬碟,並從內存中刪除,以此類推。
rowAccessWindowSize代表指定的內存中緩存記錄數,默認為100,此值可以通過
new SXSSFWorkbook(int rowAccessWindowSize)或SXSSFSheet.setRandomAccessWindowSize(int windowSize)來設置。
I. 求java導出大量數據到excel解決方法
昏。。你在這里問,,你瘋了。。你想導出一個文件也可以,,但是一個excel文件的,一個工作薄大小好像是有限的。。你可以切成幾分導到一個excel的幾個工作薄裡面。。