C 讀寫Excel檔案

2022-09-16 14:18:09 字數 1149 閱讀 1441

公司遇到一些tasks,需要將分析完畢的資料結果儲存在excel檔案中。陸陸續續參與了這麼多tasks後,現簡單總結下:

操縱excel 檔案有多種方法,每種方法都有特色,適用於不同場景。

方法1:呼叫office com元件:

也就是呼叫interop類。此方法適用於desktop已經安裝有windows office的情況。功能及其強大,windows office擁有的功能,幾乎通過此都能呼叫。劣勢是讀寫速度最慢。

方法2:使用odbc技術讀寫excel檔案

該方法讀寫速度似乎最快(沒有準確的資料對比,只是平時開發時候的感覺體會)。要注意的是office excel 2007及以後採用了openxml的檔案封裝格式,一改之前的二進位制格式,相應有配套兩個odbc驅動。缺點是準確性差,文件內容如果有不合規範的,會出現內容丟失等異常。該方法最大的問題是如果excel檔案不是極其「標準」(沒有公式,沒有圖等)的話odbc無法識別sheets。 此時的解決辦法是。。。。。。。使用方法1對excel 檔案進行預處理,也就是呼叫interop操縱namemanager。define sheet。

方法3:使用microsoft退出的office 大殺器: openxml2.5 。該工具顧名思義只適合於excel2007及以後的格式,囊括了幾乎所有的操縱office檔案函式。優點是功能強悍,速度比較快。準確性高,輸出的excel檔案一般不會有格式問題,缺點也是由其優點而生,由於功能太多新手上手慢,學習曲線比較陡峭。而且效能優化的可操作餘地不是很大。

該方法通常很穩定,不過極偶然條件下會造成格式問題,不能正常寫入資料。(很是蛋疼。。。。)也就是在這種情況下促使本人摸索出了方法4.

方法4: 直接xml操縱

這也是本人最近開發和採用的辦法,適用於大批量寫入資料的情況。原理完全同方法3。優點是將excel檔案當做xml檔案來處理,以處理xml檔案的方法來處理excel。需要用到openxml也用到到乙個工具類:packaging,使用該類來解壓縮excel檔案。

該方式具有很大的靈活性,只要肯花功夫能完全代替openxml(本來就原理相同。。。諤諤)。本人僅僅實現了專案需要的資料批量寫入,優點是效能高,寫入速度快。空白sheet寫入1000行*10列資料測試大概需要30 seconds。效能比openxml有所提高,相信繼續優化的話效能還可以提高很多。 缺點是功能簡單,需要自己手工開發,剛開始比較麻煩,需要熟悉xml處理。

Excel檔案讀寫

對於c s模式的開發,讀寫excel檔案是很經常的事情,這裡我介紹一下通過oledb方式對excel檔案進行讀寫的方法,相比通過操作單元格的方式,應該在效能和效率上有很大優勢。首先 提供乙個excel檔案操作引擎類。using system using system.data using syste...

讀寫Excel檔案

先要引用這些命名空間.不明白的地方可以在msdn中找到.using system.data.oledb using excel using system.reflection for missing.value and bindingflags 讀取excel excel檔案全名 放到dataset...

C 通過ADO讀寫Excel檔案

有時候我們需要從excel 裡匯入 匯出資料。其中一種方式就是通過ado的方式。在這裡,excel檔案被當作資料庫來處理,該方式不需要客戶端安裝microsoft excel,速度也夠快。連線字串 這裡有兩種型別的連線字串,第一種是針對xls格式的 provider microsoft.jet.ol...