excel查詢資料的技術實現選擇

jeanron100發表於2016-01-09
最近有一個高中同學問我一件事情,就是他們目前使用excel需要經常查很多資料,但現在使用excel的篩選功能感覺比較費勁。想問問我有沒有什麼改進的方法,對於我來說,這種情況下,我會很自然的推薦他使用資料庫,而且如果可行我會推薦使用Oracle,可能這個思路聽起來也不太好,主要是我從下面幾個方面來考慮。
一來資料從excel中放入資料庫中,資料庫層面查取那肯定要快得多,而且支援各種複雜變態的查詢,多關聯都可以,當然Oracle是一種方案,使用Mysql也可以,mssql也可以。只是因為我瞭解oracle,所以用自己拿著錘子,看到的問題都是釘子的角度去看,也確實是這樣了。
二來一個很重要的原因是,可以使用plsqldev把excel的資料無縫匯入oracle,然後使用sqldeveloper匯出一個很漂亮的資料包告,我記得sqldeveloper有一個很不錯的功能就是匯出的資料為Html的時候,會自動生成一個查詢功能,輸入任何匹配的資料,都可以動態輸出當前的匹配結果。
但是我看了他發來的excel之後的初步感覺,但是看到他郵件裡的描述,我感覺這麼做看起來還是不太可行。
他說裡面有幾十個列,平時工作查詢只會用到兩個列做查詢,所以我的想法第一條就有些多餘了,而且資料量其實也不大,就幾千條,如果再翻幾番,幾十萬條,從資料庫層面,全表掃描都全然無壓力。但是目前的情況是我同學還是和IT專業性無緣,因為他們偏向業務,我說使用sql吧,他說用sql感覺也有些麻煩。他也嘗試了access.但是感覺還是有些不太方便。
這個時候我一下子有些明白了,這個和技術牛掰沒有任何關係。對他來說就是一個能夠靈活使用的工具,所見所得即可。
所以如果從excel檔案-->安裝Oracle資料庫軟體-->建立資料庫例項-->可能得擴容記憶體-->使用plsqldev匯入excel資料-->使用sqldeveloper匯出html資料 基本可以實現他的要求,如果是多個欄位還需要手工修改javascript程式碼。
這種思路著實會複雜許多。看起來現在的痛點不在資料儲存上,是在一個簡單快捷的客戶端上,那麼我可以使用Java來實現,還是按照我熟悉的技術來說,那就是jsp+serverlet+tomcat來構建了。
這個時候還得跑一個web伺服器,還需要寫jsp頁面,如果就個別幾個excel,那麼完全可以直接在jsp裡面直接嵌入servlet程式碼段。當然資料庫還是需要,不過使用mysql,msql都可以 ,access應該可以可以。
對於這種方案,自我感覺還是有一些依賴,還是有些笨重,其實不光問題沒有解決,反而更加複雜化了。
那麼就簡化一下,直接使用java的swing來做。直接編譯生成一個客戶端物件,直接執行即可,這個時候還是需要安裝有java的。不過相比起來已經簡化很多了。
但是這個時候難點就在swing的實現了,大家可能使用swing的場景還是少一些,不過swing的那種立體使用感還是很讚的,但是比較糾結的就是程式碼層來說,實現起來還是有一些難度,如果使用開源框架richclient等等,那就更不划算了,按照我同學的說法,如果稍微複雜些,可以給我申請寫經費,聽起來還是可以試試。
如果使用java的swing,那麼我就需要放棄使用資料庫了,而是使用xml來做這個,那麼這個時候一個重要的問題就變成了資料格式的轉換看,由excel轉換為xml,不過excel還好本身提供了這個功能,所以還需要花一些時間去看看怎麼去解析這個xml標示符。
或者把檔案存為csv格式,使用csvjdbc來直接操作格式轉換之後的csv檔案也可以。
恩,看起來我也是著實想了不少的方法,但是感覺從極簡的角度來看,都有一些限制和不足,那麼一個比較好的思路就是物盡其用,就好比看成龍的電影,不是有很多高超的武藝,而是他隨手拿起一個凳子,毛巾都能把它利用起來,在各種打鬥中都讓人為之一震,拍手稱快。那麼我們使用的excel,它本身的功能其實已經很強大了,記得有些人用excel裡面有各種複雜的功能,函式庫,還有vb的深度定製,宏的設定等等。所以這個時候還是可以在這個方面下下功夫,雖然我不太熟悉,但是看了下excel的一些常用功能其實已經足夠滿足這位同學的需求了。最後自己百度了不少的文章,感覺能實現的方法確實很多,不過限於excel水平,沒有成功,但是我相信這個是我的問題,excel已經很強大了,還是需要花點時間來學習一下。方向對了這些努力也就全值得。



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-1974365/,如需轉載,請註明出處,否則將追究法律責任。

相關文章