問問題_Java一次匯出百萬條資料生成excel(web操作)

發表於2016-08-22

需求:在web頁面操作,一次匯出百萬條資料並生成excel


分析:
1、非同步生成Excel,非實時,完成後使用某種方式通知使用者
2、生成多個excel檔案,並打包成zip檔案,因為一個excel容納不了這麼多資料,即使分別放在不同的sheet中也不行,檔案太大,開啟需要很長時間,使用者體驗不好
3、如果對資料格式沒什麼要求,可考慮匯出csv檔案,字元流,比excel快不少
4、後臺可開多個執行緒,分別生成excel檔案,然後再合併
5、可使用poi,但是poi是先將資料放在記憶體,然後再匯出,所以建議一次不要在記憶體放過多資料,導致記憶體不足
6、poi有個專門處理大資料庫的類(SXSSFWorkbook),沒使用過,可參考:http://blog.csdn.net/little_stars/article/details/8266262
7、可嘗試說服客戶每天定時生成excel檔案,而非通過使用者操作生成
8、非同步通知方法有簡訊、郵件、每次重新整理頁面獲取最新狀態、長連線方式實時通知




相關文章