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