您好,登錄后才能下訂單哦!
需求
最近工作中遇到一個需求,用戶頻繁要求從后臺批量導出大量數據。目前的導出方式是使用PL/SQL Developer工具連接Oracle數據庫,編寫SQL語句,使用PL/SQL Developer工具自帶的導出Excel文件的功能進行導出。
2.選擇導出Excel文件
選擇導出Excel文件時可以選擇導出XLS、XLSX兩種格式的文件。
遇到的問題:
當用戶要求導出的數據條數太大,超過XLS或者XLSX兩種文件可以存儲的最大行數時即導出失敗。為解決此問題,特定開發Oracle數據導出工具,用以支持大批量數據的導出工作。
XLS文件最大行數是:65536
XLSX文件的最大行數是:1048576
基本構想
使用任一編程語言連接數據庫并執行SQL,將查詢結果分別寫入Excel文件。
存在兩種實現方案:
選擇過程:
考慮到工具會提供公司內部其他同事使用,加之對Java做界面不是很了解,故放棄此方案1,采用方案2。選定使用方案2后,著手選擇可使用的庫及相關技術。
關于存儲文件的選擇
直接寫Excel文件:寫Excel文件時,使用LibXl庫,當數據量比較大的時候,會出現存盤失敗的情況,此種情況下只能減少寫入Excel文件的行數。如果查詢結果的字段很多,長度很長的情況下,此種方案可保存的數據條數更少。
寫Txt文件:
寫Csv文件:
寫Txt文件和寫Csv文件類似。區別在于寫Txt文件的時候,使用"\t"分隔不同的字段,而寫Csv格式時,使用","(逗號)進行分隔。
另外,在寫Csv和Txt格式的文件時,由于用戶可通過Excel打開則如果是數字,并且以0開頭的話,需要添加'號以標識此字段為文本。
其他內容
選擇Duilib UI庫,沒有選擇MFC
選擇OCILib訪問和操作數據庫(希望可以專門寫一遍筆記記錄該庫的使用方法)
使用LibXl庫寫Excel文件
操作流程
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。