Microsoft Excel是Microsoft為使用Windows和Apple Macintosh操作系統的電腦編寫的一款電子表格軟件。直觀的界面、出色的計算功能和圖表工具,再加上成功的市場營銷,使Excel成為最流行的個人計算機數據處理軟件。 發布一個最近完成的Excel2007操作類庫,可以在沒有安裝Office的機器上快速讀寫和操作Excel2007格式文件,不過還是需要.net framework2.0 :)。生成效率比較高,寫入10000行50列的數據只需12秒,如果數據是純數字還會更快,我的機器Pentium M 1.8G CPU 1.25G Memory。 Office2007中的Excel,Word,PowedPoint使用了OpenXml文件格式,文件是一個標準的zip壓縮包,只需要簡單的將文件的擴展名更改為.zip,就能看到其內部的具體內容,大部分是標準的xml文件,所以類庫主要的任務就是操作xml。Excel2007的操作類庫目前已經有人寫過了如:ExcelPackage,最初因為項目需要也曾經改造過改類庫,試圖將之封裝成可以結合報表數據分析工具的Excel2007報表生成工具,但是ExcelPackage內部的操作全部基于XmlDocument,效率低,生成簡單的報表還可以,數據量稍微有點大就處理不過來了。 開始研究怎么樣才能提高效率的時候,思索了一陣子,基于XmlDocument的操作,涉及了XPath等操作都是基于文檔的,許多XPath的查詢都是需要遍歷文檔的,即使再怎么優化XPath也不能提高太多的效率。后面老大提醒了我,應該把所有XML的操作都放到內存當中去做,把Excel文件中的XML文檔內容映射到內存中的自定義對象,在操作完成后再將內存中的對象寫回zip壓縮包中去。沒錯就是這個思路... 編寫這個類庫的時候使用了System.IO.Packaging這個名稱空間,該空間內提供了一些對zip文件的操作類,該空間位于WindowsBase.dll中,是一個.net3.x的庫,其實還有一個可以實現和System.IO.Pacakaging類似功能的類庫SharpZipLib,只是之前在編寫Excel2007操作類庫的時候還不知道,暫且從已經安裝了.net3.x的同事那拷貝了WindwsBase.dll過來用,還好能順利的在VS2005中引用且能正常使用。 此類庫目前已經結合一個報表數據分析引擎,在一個中型Web系統中實現Excel2007報表的功能。 Excel整體界面趨于平面化,顯得清新簡潔。流暢的動畫和平滑的過渡,帶來不同以往的使用體驗。 |
溫馨提示:喜歡本站的話,請收藏一下本站!