JXL是一个通过java操作excel表格的工具类库,支持Excel95-2000的所有版本。在功能上相比POI而言,jxl会弱一点,但其API对中文的支持非常好,而且该工具是纯Java开发,并不依赖任何操作系统。
Jxl主要提供的功能:
1、支持文字、数字、日期和图片操作,需要说明的是,该API对图形和表格的支持有限,而且仅仅识别PNG格式;
2、支持修改单元格属性;
3、支持图像和图表。
在进行下面的讲解之前,我们需要统一下以下观点:
Workbook:无论是对excel文件进行读操作还是写操作,都必须先获得一个workbook,一个workbook对应一个excel文件,例如在进行写操作时,创建一个WritableWorkbook;
WritableWorkbook book = Workbook.createWorkbook( new File( " test.xls " ));
Sheet:一个excel表格中的一页,在一个workbook中包含一个或多个sheet;
Cell:excel表格中的单元格,一个Sheet中包含一个或多个Cell。
1、获得一个Workbook对象book;
2、获得book中的一页sheet;
3、对sheet中的单元格进行读写等操作;
4、关闭book。
import java.io.File;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
public class CreateExcel {
public static void main(String args[]) {
try {
// 第一步:创建一个workbook
WritableWorkbook book = Workbook.createWorkbook(new File("test.xls"));
// 第二步:生成名为“第一页”的工作表,参数0表示这是第一页
WritableSheet sheet = book.createSheet("第一页", 0);
/*
* 第三步:操作Excel
* 这里添加一个字符串,Label的构造函数为:Label(int c, int r, String cont)
* 表示在第一行第一列的单元格中添加字符串"test"
*/
Label label = new Label(0, 0, "test");
// 将定义好的单元格添加到工作表中
sheet.addCell(label);
/*
* 添加一个数字,Number的构造函数为:Number(int c, int r, double val)
* 表示在第二列,第一行添加数值为555.12541的单元格
*/
jxl.write.Number number = new jxl.write.Number(1, 0, 555.12541);
// 将定义好的单元格添加到工作表中
sheet.addCell(number);
// 写入数据并关闭文件
book.write();
book.close();
} catch (Exception e) {
System.out.println(e);
}
}
}
import java.io.File;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
public class ReadExcel {
public static void main(String args[]) {
try {
// 第一步:获得一个Workbook
Workbook book = Workbook.getWorkbook(new File("test.xls"));
// 第二步:获得第一个工作表对象sheet
Sheet sheet = book.getSheet(0);
// 第三步:得到第一列第一行的单元格,并将里面的字符串打印出来
Cell cell1 = sheet.getCell(0, 0);
String result = cell1.getContents();
System.out.println(result);
//第四步:关闭book
book.close();
} catch (Exception e) {
System.out.println(e);
}
}
}
import java.io.File;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
public class UpdateExcel {
public static void main(String args[]) {
try {
// 第一步: Excel获得文件
Workbook wb = Workbook.getWorkbook( new File( " test.xls " ));
// 打开一个文件的副本,并且指定数据写回到原文件
WritableWorkbook book = Workbook.createWorkbook(new File("test.xls"), wb);
// 第二步:添加一个工作表
WritableSheet sheet = book.createSheet("第二页", 1);
// 第三步:添加一个sheet
sheet.addCell(new Label(0, 0, "第二页的测试数据"));
// 第四步:// 写入数据并关闭文件
book.write();
book.close();
} catch (Exception e) {
System.out.println(e);
}
}
}