JXL(Java Excel API)【轉載】
JXL(Java Excel API)是一個用來動態讀寫Excel文件的開源框架,利用它可以在任何支持Java的操作系統上動態讀寫Excel文件。JXL的主頁是:http://www.andykhan.com/jexcelapi/,可以在這里下載到它的最新的版本。
你可以分別通過如下命令
java -jar jxl.jar -xml test.xls
java -jar jxl.jar -cvs test.xls
以xml和cvs格式查看test.xls,這是因為JXL作者實現了一個用來演示的jxl.demo.Demo的類。
當然我們使用JXL主要是用它來動態讀寫Excel文件?,F在就來看看JXL在對Excel的讀和寫上都提供了那些支持。
先來看看Excel文件中都有寫上面對象
1 文件對象 2工作簿對象 3 單元格對象。
相應的在JXL中就有Workbook,Sheet ,Cell 。通過這三個對象我們就可以實現Excel文件的讀取工作。
我們先想想一下讀取步驟,不管是什么樣的Excel操作框架必定都要經歷
1選取Excel文件,2選擇工作簿,3選擇Cell,4讀取信息。
那么現在就可以看看JXL中這四步驟如何體現:
//通過Workbook的靜態方法getWorkbook選取Excel文件
Workbook workbook = Workbook.getWorkbook(new File("myfile.xls"));
//通過Workbook的getSheet方法選擇第一個工作簿(從0開始)
Sheet sheet = workbook.getSheet(0);
//通過Sheet方法的getCell方法選擇位置為C2的單元格(兩個參數都從0開始)
Cell c2 = sheet.getCell(2,1);
//通過Cell的getContents方法把單元格中的信息以字符的形式讀取出來
String stringc2 = c2.getContents();
可以看到正是剛才所說的四個步驟。
我們都知道Excel單元格是有格式的,那么這些信息如何取得。
Cell提供了一個getType方法能夠返回單元格的類型信息,同時JXL提供了一個CellType類用來預設Excel中的類型信息,而且JXL提供了一些Cell類的子類用來分別用來表示各種類型的單元格,如LabelCell,NumberCell,DateCell分別表示字符、數值、日期類型的單元格。所以我們可以這樣寫:
if (c2.getType() == CellType.NUMBER)
{
NumberCell nc = (NumberCell) c2;
numberb2 = nc.getValue();
}
最后不要忘記關閉workbook以釋放資源:
workbook.close();
現在總結一下:三個對象,四個步驟,注意格式。就可以輕松的從Excel文件中讀取數據。
如果你是要讀取Excel中的圖片,那么可以用Sheet的getDrawing(int i)方法返回一個Image對象,通過Image對象的
getImageData()或者getImageFile()即可訪問到你需要的圖片。
如過你是要把圖片寫入到Excel中,那么可以用WritableSheet的addImage(WritableImage image)
方法寫入,其中WritableImage可以用構造函數直接構造。
(WritableImage(double x, double y, double width, double height, java.io.File image)
柳德才
13691193654
18942949207
QQ:422157370
liudecai_zan@126.com
湖北-武漢-江夏-廟山
posted on 2009-01-16 23:18 liudecai_zan@126.com 閱讀(2720) 評論(0) 編輯 收藏 所屬分類: JFreeChart