最近有人問(wèn)我一件事情,就是他們目前使用excel需要經(jīng)常查很多數據,但現在使用excel的篩選功能感覺(jué)比較費勁。想問(wèn)問(wèn)我有沒(méi)有什么改進(jìn)的方法,對于我來(lái)說(shuō),這種情況下,我會(huì )很自然的推薦他使用數據庫,而且如果可行我會(huì )推薦使用Oracle,可能這個(gè)思路聽(tīng)起來(lái)也不太好,主要是我從下面幾個(gè)方面來(lái)考慮。
一來(lái)數據從excel中放入數據庫中,數據庫層面查取那肯定要快得多,而且支持各種復雜變態(tài)的查詢(xún),多關(guān)聯(lián)都可以,當然Oracle是一種方案,使用Mysql也可以,mssql也可以。只是因為我了解oracle,所以用自己拿著(zhù)錘子,看到的問(wèn)題都是釘子的角度去看,也確實(shí)是這樣了。
二來(lái)一個(gè)很重要的原因是,可以使用plsqldev把excel的數據無(wú)縫導入oracle,然后使用sqldeveloper導出一個(gè)很漂亮的數據報告,我記得sqldeveloper有一個(gè)很不錯的功能就是導出的數據為Html的時(shí)候,會(huì )自動(dòng)生成一個(gè)查詢(xún)功能,輸入任何匹配的數據,都可以動(dòng)態(tài)輸出當前的匹配結果。
他說(shuō)里面有幾十個(gè)列,平時(shí)工作查詢(xún)只會(huì )用到兩個(gè)列做查詢(xún),所以我的想法第一條就有些多余了,而且數據量其實(shí)也不大,就幾千條,如果再翻幾番,幾十萬(wàn)條,從數據庫層面,全表掃描都全然無(wú)壓力。但是目前的情況是我同學(xué)還是和IT專(zhuān)業(yè)性無(wú)緣,因為他們偏向業(yè)務(wù),我說(shuō)使用sql吧,他說(shuō)用sql感覺(jué)也有些麻煩。他也嘗試了access.但是感覺(jué)還是有些不太方便。
所以如果從excel文件-->安裝Oracle數據庫軟件-->創(chuàng )建數據庫實(shí)例-->可能得擴容內存-->使用plsqldev導入excel數據-->使用sqldeveloper導出html數據 基本可以實(shí)現他的要求,如果是多個(gè)字段還需要手工修改javascript代碼。
這種思路著(zhù)實(shí)會(huì )復雜許多??雌饋?lái)現在的痛點(diǎn)不在數據存儲上,是在一個(gè)簡(jiǎn)單快捷的客戶(hù)端上,那么我可以使用Java來(lái)實(shí)現,還是按照我熟悉的技術(shù)來(lái)說(shuō),那就是jsp+serverlet+tomcat來(lái)構建了。
這個(gè)時(shí)候還得跑一個(gè)web服務(wù)器,還需要寫(xiě)jsp頁(yè)面,如果就個(gè)別幾個(gè)excel,那么完全可以直接在jsp里面直接嵌入servlet代碼段。當然數據庫還是需要,不過(guò)使用mysql,msql都可以 ,access應該可以可以。
對于這種方案,自我感覺(jué)還是有一些依賴(lài),還是有些笨重,其實(shí)不光問(wèn)題沒(méi)有解決,反而更加復雜化了。
那么就簡(jiǎn)接運行即可,這個(gè)時(shí)候還是需要安裝有java的。不過(guò)相比起來(lái)已經(jīng)簡(jiǎn)化很多了。
但是這個(gè)時(shí)候難點(diǎn)就在swing的實(shí)現了,大家可能使用swing的場(chǎng)景還是少一些,不過(guò)swing的那種立體使用感還是很贊的,但是比較糾結的就是代碼層來(lái)說(shuō),實(shí)現起來(lái)還是有一些難度,如果使用開(kāi)源框架richclient等等,那就更不劃算了,按照我同學(xué)的說(shuō)法,如果稍微復雜些,可以給我申請寫(xiě)經(jīng)費,聽(tīng)起來(lái)還是可以試試。
如果使用java的swing,那么我就需要放棄使用數據庫了,而是使用xml來(lái)做這個(gè),那么這個(gè)時(shí)候一個(gè)重要的問(wèn)題就變成了數據格式的轉換看,由excel轉換為xml,不過(guò)excel還好本身提供了這個(gè)功能,所以還需要花一些時(shí)間去看看怎么去解析這個(gè)xml標示符。
或者把文件存為csv格式,使用csvjdbc來(lái)直接操作格式轉換之后的csv文件也可以。
那么我們使用的excel,它本身的功能其實(shí)已經(jīng)很強大了,記得有些人用excel里面有各種復雜的功能,函數庫,還有vb的深度定制,宏的設置等等。所以這個(gè)時(shí)候還是可以在這個(gè)方面下下功夫,雖然我不太熟悉,但是看了下excel的一些常用功能其實(shí)已經(jīng)足夠滿(mǎn)足這位同學(xué)的需求了。最后自己百度了不少的文章,感覺(jué)能實(shí)現的方法確實(shí)很多,不過(guò)限于excel水平,沒(méi)有成功,但是我相信這個(gè)是我的問(wèn)題,excel已經(jīng)很強大了,還是需要花點(diǎn)時(shí)間來(lái)學(xué)習一下。方向對了這些努力也就全值得。
學(xué)習更多,登錄樂(lè )搏學(xué)院http://h.learnbo.cn
聯(lián)系客服