資源描述:
《JXL: Java Excel API簡易教程》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、·?使用Windows操作系統(tǒng)的朋友對Excel(電子表格)一定不會陌生,但是要使用Java語言來操縱Excel文件并不是一件容易的事。正在裝載數(shù)據(jù)……·在Web應(yīng)用日益盛行的今天,通過Web來操作Excel文件的需求越來越強烈,目前較為流行的操作是在JSP或Servlet中創(chuàng)建一個CSV(commaseparatedvalues)文件,并將這個文件以MIME,text/csv類型返回給瀏覽器,接著瀏覽器調(diào)用Excel并且顯示CSV文件。這樣只是說可以訪問到Excel文件,但是還不能真正的操縱Excel文件,本文將給大家一個驚喜,向大家介紹一個開放源碼項目,JavaExcelAP
2、I,使用它大家就可以方便地操縱Excel文件了?! avaExcelAPI簡介 JavaExcel是一開放源碼項目,通過它Java開發(fā)人員可以讀取Excel文件的內(nèi)容、創(chuàng)建新的Excel文件、更新已經(jīng)存在的Excel文件。使用該API非Windows操作系統(tǒng)也可以通過純Java應(yīng)用來處理Excel數(shù)據(jù)表。因為是使用Java編寫的,所以我們在Web應(yīng)用中可以通過JSP、Servlet來調(diào)用API實現(xiàn)對Excel數(shù)據(jù)表的訪問?! ‖F(xiàn)在發(fā)布的穩(wěn)定版本是V2.0,提供以下功能: 從Excel95、97、2000等格式的文件中讀取數(shù)據(jù); 讀取Excel公式(可以讀取Excel9
3、7以后的公式); 生成Excel數(shù)據(jù)表(格式為Excel97); 支持字體、數(shù)字、日期的格式化; 支持單元格的陰影操作,以及顏色操作; 修改已經(jīng)存在的數(shù)據(jù)表; 現(xiàn)在還不支持以下功能,但不久就會提供了: 不能夠讀取圖表信息; 可以讀,但是不能生成公式,任何類型公式最后的計算值都可以讀出; 應(yīng)用示例 1、從Excel文件讀取數(shù)據(jù)表 JavaExcelAPI既可以從本地文件系統(tǒng)的一個文件(.xls),也可以從輸入流中讀取Excel數(shù)據(jù)表。讀取Excel數(shù)據(jù)表的第一步是創(chuàng)建Workbook(術(shù)語:工作薄),下面的代碼片段舉例說明了應(yīng)該如何操作:(完整代碼
4、見ExcelReading.java)importjava.io.*;importjxl.*;…………try{//構(gòu)建Workbook對象,只讀Workbook對象//直接從本地文件創(chuàng)建Workbook//從輸入流創(chuàng)建WorkbookInputStreamis=newFileInputStream(sourcefile);jxl.Workbookrwb=Workbook.getWorkbook(is);}catch(Exceptione){e.printStackTrace();}· 一旦創(chuàng)建了Workbook,我們就可以通過它來訪問ExcelSheet(術(shù)語:工作表)。參考下
5、面的代碼片段://獲取第一張Sheet表Sheetrs=rwb.getSheet(0);· 我們既可能通過Sheet的名稱來訪問它,也可以通過下標(biāo)來訪問它。如果通過下標(biāo)來訪問的話,要注意的一點是下標(biāo)從0開始,就像數(shù)組一樣?! ∫坏┑玫搅薙heet,我們就可以通過它來訪問ExcelCell(術(shù)語:單元格)。參考下面的代碼片段://獲取第一行,第一列的值Cellc00=rs.getCell(0,0);Stringstrc00=c00.getContents();//獲取第一行,第二列的值Cellc10=rs.getCell(1,0);Stringstrc10=c10.getCont
6、ents();//獲取第二行,第二列的值Cellc11=rs.getCell(1,1);Stringstrc11=c11.getContents();System.out.println("Cell(0,0)"+"value:"+strc00+";type:"+c00.getType());System.out.println("Cell(1,0)"+"value:"+strc10+";type:"+c10.getType());System.out.println("Cell(1,1)"+"value:"+strc11+";type:"+c11.getType());· 如果
7、僅僅是取得Cell的值,我們可以方便地通過getContents()方法,它可以將任何類型的Cell值都作為一個字符串返回。示例代碼中Cell(0,0)是文本型,Cell(1,0)是數(shù)字型,Cell(1,1)是日期型,通過getContents(),三種類型的返回值都是字符型。 如果有需要知道Cell內(nèi)容的確切類型,API也提供了一系列的方法。參考下面的代碼片段:Stringstrc00=null;doublestrc10=0.00;Datestrc11=null;Cellc0