Excel存储——Jxl的使用

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");
            }
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值