平常辦公,我們使用的最多辦公軟件是Microsoft的Office,所以,我們開發(fā)的系統(tǒng)難免會遇到的1個功能就是和Office交互,所以,某些聰明的人,就開發(fā)了相應(yīng)的功能包,使用我們程序員可以非常方便的進(jìn)行Microsoft Office格式檔案的讀和寫,該功能包就是POI。
對POI具體某1個Excel的操作,這里不再贅述,本節(jié)主要的任務(wù)就是對這些最基本的功能做個封裝,使其使用大多Excel的操作。
通過模板實(shí)現(xiàn)將對象的數(shù)據(jù)導(dǎo)出為excel;將excel中的數(shù)據(jù)導(dǎo)入到相應(yīng)的對象中
我們要想實(shí)現(xiàn)將對象的數(shù)據(jù)導(dǎo)出為excel,首先需要肯定,數(shù)據(jù)對象的屬性在excel中的列明是甚么?和該屬性在excel中的第幾列?為了解決這個問題,我們需要自定義1個注解,然后,在數(shù)據(jù)對象的類上進(jìn)行相應(yīng)的自描寫。ExcelResources就是這個注解類
數(shù)據(jù)對象的類添加自描寫后,我們就能夠根據(jù)對象的Class類型對象取得其相應(yīng)的注解的值,對這些注解的值,我們應(yīng)當(dāng)使用1個對象進(jìn)行保存,然后,在將這些數(shù)據(jù)進(jìn)行排序,輸出到Excel的列明上。ExcelHeader就是保存數(shù)據(jù)對象上每一個屬性的注解值得對象。
數(shù)據(jù)的導(dǎo)出操作都是基于模板進(jìn)行操作的,所以,我們應(yīng)當(dāng)需要有1個類,該類從程序代表了Excel模板,ExcelTemplate就是該類。我們從面相對象的角度分析,該類應(yīng)當(dāng)具有甚么功能。
首先具有讀入模板Excel和導(dǎo)出Excel。我們要將數(shù)據(jù)保存到內(nèi)存中的excel中,我們需要知道,數(shù)據(jù)從excel的甚么位置開始填寫,所以,我們需要規(guī)定1些特殊標(biāo)識,分表用來代碼excel的標(biāo)題,日期,數(shù)據(jù)開始的位置,默許樣式,其它非默許樣式,并且,該類應(yīng)當(dāng)具有替換這些特殊標(biāo)識,設(shè)置單元格樣式,創(chuàng)建行和單元格的功能。
ExcelTemplate是基于模板的操作,ExcelUtil不基于模板的操作,兩個類在功能上是1樣的。
該功能的封裝,對大多的需求都可以滿足。代碼下載