用Java建立Excel檔案,Java Excel API的使用
Java Excel API的使用
Java Excel API(JXL)是一個成熟開源的Java類庫,用來操作Excel電子表格,支援讀取,修改,寫入等操作。這個專案基於GPL釋出,與poi比較,對中文有很好的支援。而且支援PNG格式圖片以及各種數字型別。
當然poi除了可以生成excel格式檔案外,還支援pdf、doc等。
我下載的是jexcelapi_2_6_10.zip 2009年5月28日釋出的
下面以此為例進行簡單說明。
一、 解壓
將下載後的檔案(如jexcelapi_2_6_10.zip)解壓,裡面有好多目錄,包括例子、文件和原始碼,其中對專案有用的只有jxl.jar,把它引入或放入專案的classpath目錄。
二、新建測試類,建立excel檔案
import java.io.*;
import jxl.*;
import jxl.write.*;
public class WriteExcel {
/**
* written by http://www.sunleap.com
*/
public static void main(String[] args) {
try
{
//下面建立Excel檔案
WritableWorkbook book=Workbook.createWorkbook(new File("c://test.xls"));
//下面生成名為"第一頁"的工作表Sheet,引數0表示這是第一頁
WritableSheet sheet=book.createSheet("第一頁",0);
//下面使用Label物件在單元格第1行第1列(0,0)構造一個標籤,內容為"網址"
jxl.write.Label label1=new jxl.write.Label(0,0,"網址");
//將定義好的單元格(0,0)新增到工作表中
sheet.addCell(label1);
//下面使用Label物件在單元格第1行第2列(1,0)構造一個標籤,內容為"站長"
jxl.write.Label label2=new jxl.write.Label(1,0,"站長");
//將定義好的單元格(1,0)新增到工作表中
sheet.addCell(label2);
//下面使用Label物件在單元格第1行第3列(2,0)構造一個標籤,內容為"訪問量"
jxl.write.Label label3=new jxl.write.Label(2,0,"訪問量");
//將定義好的單元格(2,0)新增到工作表中
sheet.addCell(label3);
//下面向檔案中插入兩行記錄
sheet.addCell(new jxl.write.Label(0,1,"
sheet.addCell(new jxl.write.Label(1,1,"sunleap"));
sheet.addCell(new jxl.write.Number(2,1,1000));
sheet.addCell(new jxl.write.Label(0,2,"http://www.isosee.cn"));
sheet.addCell(new jxl.write.Label(1,2,"isosee"));
sheet.addCell(new jxl.write.Number(2,2,1189));
//向檔案寫入資料並關閉檔案
book.write();
book.close();
}catch(Exception e)
{
System.out.println(e);
}
System.out.println("操作結束!");
}
}
執行後,會在C盤生成一個名稱為”test.xsl”的Excel檔案。
三、讀取檔案
下面程式碼讀取剛才生成的Excel檔案,程式碼如下:
import java.io.*;
import jxl.*;
public class ReadExcel {
/**
* written by http://www.sunleap.com
*/
public static void main(String[] args) {
try{
Workbook book=Workbook.getWorkbook(new File("c://test.xls"));
//獲得第一個工作表物件
Sheet sheet=book.getSheet(0);
//得到第2行第1列的單元格
Cell cell1=sheet.getCell(0,1);
String result=cell1.getContents();
System.out.println(result);
book.close();
}catch(Exception e){
System.out.println(e);
}
}
}
四、修改檔案
修改檔案程式碼如下:
import java.io.*;
import jxl.*;
import jxl.write.*;
public class UpdateExcel {
/**
* written by http://www.sunleap.com
*/
public static void main(String[] args) {
try {
//獲得Excel檔案
Workbook wb=Workbook.getWorkbook(new File("c://test.xls"));
//開啟一個檔案的副本,並且指定資料寫回到原檔案
WritableWorkbook book=
Workbook.createWorkbook(new File("c://test.xls"),wb);
//新增一個工作表eet,在第一行第一列填寫內容
WritableSheet sheet=book.createSheet("第二頁",1);
sheet.addCell(new Label(0,0,"http://www.sunleap.com"));
book.write();
book.close();
}catch(Exception e){
System.out.println(e);
}
System.out.println("操作結束!");
}
}
執行結果是在原有檔案中加入了一個新的工作表
Excel檔案往往有多行多列,可以進行迴圈讀寫,下面例子是迴圈讀取excel檔案的參考程式碼:
Workbook book=Workbook.getWorkbook(new File("c://test.xls"));
//獲得第一個工作表
Sheet sheet=book.getSheet(0);
//得到行列數
int columnum=sheet.getColumns();
int rownum=sheet.getRows();/
for(int i=0;i< rownum {
for(int j=0;j<columnum{
Cell cell1=sheet.getCell(j,i);
String result=cell1.getContents();
System.out.print(result);
System.out.print("/t");
}
System.out.println();
}
book.close();
另外,j Excel API的其他功能,如格式化單元格、合併單元格、插入圖片等參見幫助檔案.