1.當要增加註解在Excel Cell 中,透過WritableCellFeatures Class的setComment(String)加入註解

WriteExcelWithComment.java
package tw.com.haoxiao.excel.write;

import java.io.File;

import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableCellFeatures;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;


public class WriteExcelWithComment {
  private static String excelURL = "C:/ExcelWithComment.xls";
 
  public static void main(String[] args)throws Exception {
    // 建立Excel File
    File excelFile = new File(excelURL);
    WritableWorkbook writeable = Workbook.createWorkbook(excelFile);
   
    // 建立Excel Content
    WritableSheet sheet = writeable.createSheet("Commnet", 0);
    Label label = new Label(1,1,"Write Comment");
   
    // 產生註解
    WritableCellFeatures cellFeatures = new WritableCellFeatures();
    cellFeatures.setComment("增加一個註解");
   
    // 將註解加入至Label
    label.setCellFeatures(cellFeatures);
   
    // add Cell
    sheet.addCell(label);
   
    // Output and Close
    writeable.write();
    writeable.close();
  }
}

以下範例展示

1.如何取得Excel 所有的Sheet and Name

2.取得Excel 的Row and Column

3.取得每一個Sheet中的內容

4.搜尋每一個Sheet中,是否含有相同的字串

ReadExcelAPI.java
package tw.com.haoxiao.excel.read;

import java.io.File;
import java.util.Arrays;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;

public class ReadExcelAPI {
  // 檔案目錄
  private static String excelURL = "C:/ExcelTest.xls";
  // 搜尋的字串
  private static String searchString = "Apple";
 
  public static void main(String[] args)throws Exception {
    // 宣告File指向Excel的路徑
    File excelFile = new File(excelURL);
   
    // 透過 Workbook.getWorkbook 取得Excel
    Workbook workbook = Workbook.getWorkbook(excelFile);
   
    // 取得Excel 所有的Sheet Name
    System.out.println("======Sheet Name======");
    String[] sheetsByName = workbook.getSheetNames();
    System.out.println(Arrays.asList(sheetsByName));

    // 取得Excel 所有的Sheet
    System.out.println("======Sheet Name======");
    Sheet[] sheets = workbook.getSheets();
    for(int sheetIndex = 0; sheetIndex < sheets.length; sheetIndex++) {
      System.out.println("Index " + sheetIndex + " : " + sheets[sheetIndex].getName());
    }
   
    // 取得Rows and Columns 長度
    for(int sheetIndex = 0; sheetIndex < sheets.length; sheetIndex++) {
      int cols = sheets[sheetIndex].getColumns();
      int rows = sheets[sheetIndex].getRows();
      System.out.println("======" + sheets[sheetIndex].getName() + "======");
      System.out.println("Rows : " + rows);
      System.out.println("Cols : " + cols);
    }
   
    // 取得每一個Sheet的表格內容
    for(int sheetIndex = 0; sheetIndex < sheets.length; sheetIndex++) {
      int cols = sheets[sheetIndex].getColumns();
      int rows = sheets[sheetIndex].getRows();
      System.out.println("======" + sheets[sheetIndex].getName() + "======");
      for(int y = 0; y < rows; y++) {
        for(int x = 0; x < cols; x++) {
          System.out.print(sheets[sheetIndex].getCell(x, y).getContents() + "\t");
        }
        System.out.println();
      }
    }
   
    // 尋找 Cell的內容
    System.out.println("======搜尋======");
    for(int sheetIndex = 0; sheetIndex < sheets.length; sheetIndex++) {
      Sheet sheet = sheets[sheetIndex];
      Cell searchCell = sheet.findCell(searchString);
      if(searchCell != null) {
        System.out.println("找到" + searchString + "在" + sheet.getName()
            + "的(" + searchCell.getColumn() + ","
            + searchCell.getRow() + ")");
      }
    }
   
    // 關閉
    workbook.close();
  }
}

要使用Java讀取Excel也不難,只需要幾個步驟

1.建立要讀取Excel的路徑

2.透過Workbook.getWorkbook(File)取得Excel

3.取得Sheet

4.取得Sheet 中的 Cell

5.取得 Cell中的內容

6.關閉

 

ReadExcel.java
package tw.com.haoxiao.excel.read;

import java.io.File;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;

public class ReadExcel {
  private static String excelURL = "C:/ExcelTest.xls";
 
  public static void main(String[] args)throws Exception {
    // 宣告File指向Excel的路徑
    File excelFile = new File(excelURL);
   
    // 透過 Workbook.getWorkbook 取得Excel
    Workbook workbook = Workbook.getWorkbook(excelFile);
   
    // 取得Excel Sheet(頁籤)
    Sheet sheetByIndex = workbook.getSheet(0);
    Sheet sheetByName = workbook.getSheet("第一個頁籤");
   
    // 取得 Cell
    Cell cell1 = sheetByIndex.getCell(0, 0);
    Cell cell2 = sheetByIndex.getCell(1, 0);
    Cell cell3 = sheetByName.getCell(0, 1);
    Cell cell4 = sheetByName.getCell(1,1);
   
    // 取得 Cell的值
    String s1 = cell1.getContents();
    String s2 = cell2.getContents();
    String s3 = cell3.getContents();
    String s4 = cell4.getContents();
   
    // Print Cell Value
    System.out.println("Row 1 : " + s1 + "\t" + s2);
    System.out.println("Row 2 : " + s3 + "\t" + s4);
   
    // 關閉
    workbook.close();
  }

}

 
http://jexcelapi.sourceforge.net/ 下載 JExcelApi 的library
之後要使用Java建立一個Excel檔案就很簡單,只要幾個步驟。
1.建立一個File 指定Excel輸出的位置
2.透過Workbook.createWorkbook() 開啟一個Excel
3.產生一個Sheet, 並且命名
4.使用jxl,write.Label , Number, ... 建立每一個Cell的值
5.將 Cell 加入至 Sheet中
6.呼叫WritableWorkbook的write(), 將檔案寫入至硬碟中
7.關閉
WriteExcel.java
package tw.com.haoxiao.excel.write;

import java.io.File;

import jxl.Workbook;
import jxl.write.Label;
import jxl.write.Number;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

public class WriteExcel {
  private static String excelURL = "C:/ExcelTest.xls";
 
  public static void main(String[] args)throws Exception {
    System.out.println("Create Excel to " + excelURL);
   
    // 建立輸入 Excel 檔案的目錄
    File execlFile = new File(excelURL);

    // 建立 Excel 檔, 此時只是暫存於記憶體中, 還沒有真正寫入於實體的硬碟中
    WritableWorkbook workbook = Workbook.createWorkbook(execlFile);
   
    // 建立一個頁籤, 以及名稱
    WritableSheet sheet = workbook.createSheet("第一個頁籤", 0);
   
    // 宣告 Cell 內的值, String, Number
    Label label1 = new Label(0,0,"Hello");
    Label label2 = new Label(1,0,"Excel");
    Label label3 = new Label(0,1,"pi=");
    Number number = new Number(1,1,3.14159);
   
    // 將 Cell 加入至 Sheet
    sheet.addCell(label1);
    sheet.addCell(label2);
    sheet.addCell(label3);
    sheet.addCell(number);
   
    // 將 Excel 寫入至硬碟中
    workbook.write();
   
    // 關閉
    workbook.close();
   
    System.out.println("Excel already create succes...");
  }
}