匯出excel功能(解決大資料量問題)__C語言

來源:互聯網
上載者:User

目前我們做的系統,匯出excel功能都存在一個問題,如果資料量一大(比如上萬條以上的記錄),如果用傳統的方式匯出excel速度都很慢,甚至最終導致記憶體益出,最終死機;(請大夥最好都確認一下各自負責的系統存在的問題)

例如:三明移動公司的積分系統,因需求所需,客戶如果要匯出20多萬條記錄的話,系統速度都很慢,最終導致記憶體益出死機;原本以為是頻繁把資料放在集合的原因,可是我又有分頁覺得不是主要原因,經與黃振華的商討和測試,發現主要是因為頻繁把資料插入到excel的原因,資料量一大就會佔用系統很多記憶體;所以我們最好不要用java提供的操作excel的api(HSSFWorkbook workbook = new HSSFWorkbook();...)

這裡推薦往文字檔直接插入記錄的方式(速度快,占記憶體也少),然後用\t割開代表一列,到時候產生的檔案,直接用excel開啟就可.具體如下:
String path="c:/test.xls";//資料存放的位置
BufferedWriter buff = new BufferedWriter(new FileWriter(path));//組建檔案
//插入標題
buff.write("部門名稱\t使用者\t電話");//代表3列
buff.write("\r\n");//換行
//插入5萬條記錄
for (int i = 0; i < 50000; i++) {
   buff
     .write("簡訊營業廳\t小吳\t123456");
   buff.write("\r\n");
  }
buff.close(); //關閉檔案操作

備忘:由於開啟excel的時候一個sheet只顯示6.5萬左右的記錄,所以記錄超過5,6萬的時候,推薦產生多個檔案,一個檔案5萬行左右就好

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.