1、简介
Jxl 是一款常用的 Java 中操作 Excel 的 API,但其只对 xls 有效,对 2007 版本以 上的 Excel(xlsx)很难处理。在本节中,主要介绍如何使用 Jxl 创建工作簿以及工作 表、读取 Excel 文件内容和写入 Excel 文件内容。
2、Jar包下载
<dependency>
<groupId>net.sourceforge.jexcelapi</groupId>
<artifactId>jxl</artifactId>
<version>2.6.12</version>
</dependency>
3、数据写入
在写入 Excel 之前,需要创建 Excel 工作簿以及工作表,如下语句。
File xlsFile = new File("data/a.xls");
// 创建一个工作簿
WritableWorkbook workbook = Workbook.createWorkbook(xlsFile);
// 创建一个工作表
WritableSheet sheet = workbook.createSheet("sheet1", 0);
创建完工作表之后,可以使用 addCell(WritableCell cell)方法向数据表中添加数据, 如下为 Excel 工作表添加一个表头。
//添加表头
sheet.addCell(new Label(0, 0, "post_id"));
sheet.addCell(new Label(1, 0, "post_title"));
其中,构造方法 Label(int c, int r, String cont)中的 c 表示列,r 表示行,cont 表示 文本内容。如上面的操作表示向第一行的第一列和第二列分别添加字符“post_id”和 “post_title”。添加完表头内容后,可以使用循环语句,继续向 Excel 工作表中添加数据。
//添加内容
for(int i = 0; i < 2; i++){
sheet.addCell(new Label(0, i+1, "0" + i));
sheet.addCell(new Label(1, i+1, "内容" + i));
}
之后,执行写入文件操作,关闭资源,释放内存。
//执行写入文件操作
workbook.write();
//关闭资源,释放内存
workbook.close();
4、数据读取
使用 Jxl 读取 Excel 文件(xls)需要声明工作簿,即确定读取的 Excel 文件。
Workbook 类中提供了多种方法,声明读取的工作簿,如下所示。
Workbook getWorkbook(java.io.File file) //基于File对象
Workbook getWorkbook(java.io.File file,
WorkbookSettings ws) Workbook getWorkbook(InputStream is) //基于字节流
Workbook getWorkbook(InputStream is, WorkbookSettings ws)
声明工作簿后,需要确定读取的工作表,Workbook 类中提供了两种方法确定操 作的工作表。
Sheet getSheet(String name) //基于sheet名
Sheet getSheet(int index) //基于 sheet 索引
public class JxlExcelRead {
public static void main(String[] args) throws IOException, BiffException {
//声明工作薄
Workbook workbook = Workbook.getWorkbook(new File("data/a.xls"));
//获取名称为sheet1的表格,也可以使用getSheet(0)获取第一个工作表
Sheet sheet = workbook.getSheet(0);
int rows = sheet.getRows();
int columns = sheet.getColumns();
//行列循环读取数据
for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++) {
//使用getCell方法读取数据
//第一个参数是指第几列,第二个参数是指定第几行
Cell cell = sheet.getCell(j, i);
System.out.println(cell.getContents() + "\t");
}
}
}
}