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、数据读取
讯享网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"); } } } }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/118186.html