


版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、使用Windows操作系統(tǒng)的朋友對(duì)Excel (電子表格)一定不會(huì)陌生,但是要使用Java語(yǔ)言來(lái)操縱Excel文件并不是一件容易的事。在Web應(yīng)用日益盛行的今天,通過(guò)Web來(lái)操作Excel文件的需求越來(lái)越強(qiáng)烈,目前較為流行的操作是在JSP或Servlet中創(chuàng)建一個(gè) CSV (comma separated values)文件,并將這個(gè)文件以MIME, text/csv類型返回給瀏覽器,接著瀏覽器調(diào)用Excel并且顯示CSV文件。這樣只是說(shuō)可以訪問(wèn)到Excel文件,但是還不能真正的操縱Excel文件,本文將給大家一個(gè)驚喜,向大家介紹一個(gè)開放源碼項(xiàng)目,Java Excel API,使用它大家就可以
2、方便地操縱Excel文件了。JAVA EXCEL API 簡(jiǎn)介Java Excel是一開放源碼項(xiàng)LI,通過(guò)它Java開發(fā)人員可以讀取Excel文件 的內(nèi)容、創(chuàng)建新的Excel文件、更新已經(jīng)存在的Excel文件。使用該API非 Windows操作系統(tǒng)也可以通過(guò)純Java應(yīng)用來(lái)處理Excel數(shù)據(jù)表。因?yàn)槭鞘褂肑ava 編寫的,所以我們?cè)赪eb應(yīng)用中可以通過(guò)JSP、Servlet來(lái)調(diào)用API實(shí)現(xiàn)對(duì)Excel 數(shù)據(jù)表的訪問(wèn)。現(xiàn)在發(fā)布的穩(wěn)定版本是V2.0,提供以下功能:從Excel 95、97、2000等格式的文件中讀取數(shù)據(jù);讀取Excel公式(可以讀取Excel 97以后的公式);生成Excel數(shù)據(jù)表
3、(格式為Excel 97);支持字體、數(shù)字、日期的格式化;支持單元格的陰影操作,以及顏色操作:修改已經(jīng)存在的數(shù)據(jù)表;現(xiàn)在還不支持以下功能,但不久就會(huì)提供了:1. 不能夠讀取圖表信息;2. 可以讀,但是不能生成公式,任何類型公式最后的計(jì)算值都可以讀出;應(yīng)用示例1從Excel文件讀取數(shù)據(jù)表Java Excel API既可以從本地文件系統(tǒng)的一個(gè)文件(.xls),也可以從輸入流 中讀取Excel數(shù)據(jù)表。讀取Excel數(shù)據(jù)表的第一步是創(chuàng)建Workbook(術(shù)語(yǔ):工作 ?。?,下面的代碼片段舉例說(shuō)明了應(yīng)該如何操作:(完整代碼見(jiàn)ExcelReading. java)import javaio.*;import
4、 jxl水;try/構(gòu)建Workbook對(duì)象,只讀Workbook對(duì)象/直接從本地文件創(chuàng)建Workbook/從輸入流創(chuàng)建WorkbookInputStream is 二 new FilelnputStream(sourcefile); jxl. Workbook rwb 二 Workbook. getWorkbook(is);catch (Exception e)一旦創(chuàng)建(Workbook,我們就可以通過(guò)它來(lái)訪問(wèn)Excel Sheet (術(shù)語(yǔ):工作 表)。參考下面的代碼片段:我們既可能通過(guò)Sheet的名稱來(lái)訪問(wèn)它,也可以通過(guò)下標(biāo)來(lái)訪問(wèn)它。如果通 過(guò)下標(biāo)來(lái)訪問(wèn)的話,要注意的一點(diǎn)是下標(biāo)從0開始,就
5、像數(shù)組一樣。一旦得到了 Sheet,我們就可以通過(guò)它來(lái)訪問(wèn)Excel Cell(術(shù)語(yǔ):?jiǎn)卧?。 參考下面的代碼片段:/獲取第一行,第一列的值Cell cOO = rs. getCell (0, 0):String strcOO = c00getContents();/獲取第一行,第二列的值Cell clO = rs. getCell (1, 0):String strclO = clO.getContents();/獲取第二行,第二列的值Cell ell = rs. getCell (1, 1):String strcll = ell.getContents();Syste m out. p
6、rint In (Z/Cell (0, 0) + value : + st rcOO + type : + cOO. getTypeO);Syste m. out. print In (Z/Cell (1, 0) + value : + strclO + “; type : +如果僅僅是取得Cell的值,我們可以方便地通過(guò)getContents()方法,它可 以將任何類型的Cell值都作為一個(gè)字符串返回。示例代碼中Cell(0, 0)是文本 型,Cell(l, 0)是數(shù)字型,Cell(l,l)是日期型,通過(guò)匪tContentsO,三種類型 的返回值都是字符型。如果有需要知道Cell內(nèi)容的確切類
7、型,API也提供了一系列的方法。參考下 面的代碼片段:String strcOO = null;double strclO = 0. 00;Date strcll = null;Cell cOO = rs. getCell (0, 0):Cell clO = rs. getCell (1, 0);Cell ell = rs. getCell (1, 1):辻(cOO. getTypeO = CellType. LABEL) LabelCell labelcOO = (LabelCell)cOO; strcOO = labelcOO. getStringO ;辻(clO. getTypeO 二二
8、 CellType. NUMBER) XmberCell numclO = (NumberCell)clO; strclO = numcl0. getValue():if (ell. getTypeO = CellType. DATE)DateCell datecll = (DateCell)ell; strcll = dated 1 getDate();Syste m out. print In (,zCell (0, 0) -卜value :-卜 strcOO t-;type :+cOO. getTypeO);System. out print In (/zCell (1,0) -卜val
9、ue :-卜 strclO t-;type :+clO. getTypeO);System out printIn(Cell (1,1) -卜value :-卜 strcll t-;type :+ell. getTypeO);在得到Cell對(duì)象后,通過(guò)getTypeO方法可以獲得該單元格的類型,然后與 API提供的基本類型相匹配,強(qiáng)制轉(zhuǎn)換成相應(yīng)的類型,最后調(diào)用相應(yīng)的取值方法 getXXXO,就可以得到確定類型的值。API提供了以下基本類型,與Excel的數(shù)據(jù) 格式相對(duì)應(yīng),如下圖所示:沁 CeffVypej 2 BOOLEANCellTypej& BOOLEAN _FORMULACellType
10、& EATECellType矽 EMPTYCellType3 ERRORCellType7 FORI-LULA_ERRORCellTypeQ LABELCellTypeEMBERCellTypeJ NUMBER_DORMUIACellType砂 STRING_FORl-rUIACellType 1每種類型的具體意義,請(qǐng)參見(jiàn)Java Excel API Documento當(dāng)你完成對(duì)Excel電子表格數(shù)據(jù)的處理后,一定要使用close ()方法來(lái)關(guān)閉先前創(chuàng)建的對(duì)象,以釋放讀取數(shù)據(jù)表的過(guò)程中所占用的內(nèi)存空間,在讀取大量數(shù)據(jù)時(shí)顯得尤為重要。參考如下代碼片段:Java Excel API提供了許多訪問(wèn)E
11、xcel數(shù)據(jù)表的方法,在這里我只簡(jiǎn)要地介 紹兒個(gè)常用的方法,其它的方法請(qǐng)參考附錄中的Java Excel API DocumentoWorkbook類提供的方法1. int getNumberOfSheets ()獲得工作薄(Workbook)中工作表(Sheet)的個(gè)數(shù),示例:jxl. Workbook rwb = jxl. WorkbookgetWorkbook (new File (sourcefile): int sheets = :rwb. getNumberOfSheets();2. Sheet getSheets ()返回工作薄(Workbook)中工作表(Sheet)對(duì)象數(shù)組,
12、示例:jxl. Workbook rwb = jxl. WorkbookgetWorkbook(new File (sourcefile):Sheet sheets = :rwb. getSheets ();3. String getVersion()返回正在使用的API的版本號(hào),好像是沒(méi)什么太大的作用。 jxlWorkbook rwb = jxl. WorkbookgetWorkbook (new File (sourcefile): String apiVersion = rwb. getVersionO ;Sheet接口提供的方法1) String getName ()獲取Sheet的名稱,示例:jxl. Workbook rwb = jxl. WorkbookgetWorkbook (new File (sourcefile): jxl. Sheet rs = rwb getSheet (0);String sheetName = rs. getName();2) int
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025年中國(guó)養(yǎng)老保險(xiǎn)市場(chǎng)運(yùn)行態(tài)勢(shì)及行業(yè)發(fā)展前景預(yù)測(cè)報(bào)告
- 2025-2030年圖書館查詢機(jī)器人企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 2025-2030年教育用3D打印實(shí)驗(yàn)室行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 2021-2026年中國(guó)硫酸妥布霉素注射液行業(yè)全景評(píng)估及投資規(guī)劃建議報(bào)告
- 2025年換檔搖臂行業(yè)深度研究分析報(bào)告
- 2025年低溫檢測(cè)臺(tái)行業(yè)深度研究分析報(bào)告
- 2023-2029年中國(guó)精氨酸布洛芬顆粒行業(yè)市場(chǎng)發(fā)展監(jiān)測(cè)及投資潛力預(yù)測(cè)報(bào)告
- 2025年中國(guó)鋁合金電纜行業(yè)市場(chǎng)全景調(diào)查及投資價(jià)值預(yù)測(cè)報(bào)告
- 2025年防塵濾袋研發(fā)、生產(chǎn)及售后服務(wù)一體化合同
- 2025年度房地產(chǎn)企業(yè)員工保密協(xié)議與競(jìng)業(yè)限制規(guī)范合同
- 天津市-2024年-社區(qū)工作者-上半年筆試真題卷
- 紅色中國(guó)風(fēng)2025靈蛇賀歲
- 教師校園食品安全培訓(xùn)
- 烈士褒揚(yáng)課件教學(xué)課件
- 公務(wù)用車分時(shí)租賃實(shí)施方案
- 《論語(yǔ)》原文-翻譯-完整版
- 退休延期留用崗位協(xié)議書
- 3.1 歌曲《音階歌》課件(10張內(nèi)嵌音頻)
- 中醫(yī)適宜技術(shù)-中藥熱奄包
- 2024-2025學(xué)年小學(xué)科學(xué)五年級(jí)下冊(cè)青島版(六三制2024)教學(xué)設(shè)計(jì)合集
- 壓瘡的預(yù)防和護(hù)理
評(píng)論
0/150
提交評(píng)論