国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
WEB開發(fā)

1、大批量數(shù)據(jù)導出的時候,需要注意這樣的一個問題,Excel2003格式一個sheet只支持65536行,excel 2007 就比較多,是1048576。  

2、NPOI開源的組件,使用時不需要安裝office(極大的優(yōu)勢),需要注意的是,目前該方法只能操作office2003。POI什么的都是先在內(nèi)存里面把Excel的結(jié)構(gòu)構(gòu)造好再輸出的,這個過程很費內(nèi)存,不要用POI這些,只是導出數(shù)據(jù)結(jié)構(gòu)簡單的話換成文本輸出csv用流式輸出,Excel一樣可以打開的。

3、不要用response.write,用fileWriter;

4、待處理的數(shù)據(jù),不要一次性全部放到數(shù)據(jù)對象中,應該分批處理,以避免JVM內(nèi)存使用的溢出;

5、Excel如果寫入的內(nèi)容過多,建議分開寫到多個excel文件中,然后打成ZIP包提供下載。

6、需要注意的是寫入csv 文件時指定的是GB2312的編碼,如果指定為UTF-8的編碼,采用Excel打開為亂碼;如果采用UNICODE編碼,逗號可能無法正確解析,數(shù)據(jù)將合并為一列;注:逗號為英文字符。如圖:相同數(shù)據(jù)量的csv與xls文件比較

7、因為擔當者經(jīng)驗不足,在導出CSV時,使用String來拼接字符串,現(xiàn)在我們把String換成StringBuffer就好了,現(xiàn)在到處一萬條數(shù)據(jù)只用幾秒就可以實現(xiàn)了

8、oracal數(shù)據(jù)導出csv文件,使用的未封裝的最基本的jdbc,用ResultSet取數(shù)據(jù)。
10萬條全紀錄導出用時7秒 導出文件52MB,700萬條全紀錄導出用時12分42秒 導出文件3.5GB。CPU占用稍高點大約50%,內(nèi)存占用很少僅僅20MB左右。
測試在本地進行的,機器也是一般的core2。使用語言是java。所以大數(shù)據(jù)建議用最原始的方法。

8、示例代碼:

 1 ServletOutputStream os = response.getOutputStream(); 2             SimpleDateFormat dataFormat = new SimpleDateFormat("yyyyMMddHHmm"); 3             Date today = new Date(); 4             String filetime = dataFormat.format(today); 5             response.reset(); 6             response.setContentType("application/download;charset=GB2312");  7             response.setHeader("Content-disposition","attachment;filename=\"" +new String("交易清單".getBytes(), "iso-8859-1")+filetime+".csv\"");  8  9             String[] title = { "流水號", "繳費項目", "繳費時間", "電話號碼", "賬號", "數(shù)量",10                     "面值", "金額(元)", "訂單狀態(tài)", "處理時間", "處理結(jié)果", "機主姓名", "繳前余額",11                     "歸屬地區(qū)" };12             StringBuffer csvFileString = new StringBuffer() ;13             PrintWriter pw = response.getWriter();  14             for(int i = 0;i<title.length;i++){15                 csvFileString.append(title[i]);16                 if(i<title.length-1){17                     csvFileString.append(",");18                 }19             }20             csvFileString.append("\n");21 22 ......................................23 24             pw.write(csvFileString.toString());  25             pw.flush();  26             pw.close();  27             os.close();

 

 

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
request.setAttribute()、session.setAttribute()和request.getParameter()的聯(lián)系與區(qū)別
GridView中的數(shù)據(jù)導出到Excel方法(經(jīng)測試完整)
打開CSV格式文件?英雄請留步!
面試題1:String,StringBuffer,StringBuilder的區(qū)別
String,StringBuffer與StringBuilder的區(qū)別??
深入了解_StringBuffer和StringBuilder的區(qū)別
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服