1. 程式人生 > >用Java建立Excel檔案,Java Excel API的使用

用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,"

http://www.sunleap.com"));
   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的其他功能,如格式化單元格、合併單元格、插入圖片等參見幫助檔案.