【Java】用 poi-3.15.jar 实现对excel表格的读和写 (尝试完成从excel内取出对象list和存入某对象至excel的工具)

因为舍友项目的某种需求,需要将数据存储在excel表格中,我就下载并尝试使用了 poi-3.15 ,下面是我自己在学习中的一点所得

poi-3.15 下载地址:https://mvnrepository.com/artifact/org.apache.poi/poi/3.15

这是一个简单的excel表格,第一行给出了 表头

实际上poi包的基本操作也是对  cell 的操作

 

目录

建立

写入

自定义注解

从表中获取对象list

将对象存入Excel表测试:



建立

来看一个建立表的例子

//创建一个hssfWorkbook与一个excel对应
HSSFWorkbook hssfWorkbook = new HSSFWorkbook();
// 创建对应的sheet
HSSFSheet hssfSheet = hssfWorkbook.createSheet("message");
// 添加表格第0行
HSSFRow row = hssfSheet.createRow(0);
// 设置单元格,设置表头
HSSFCell cell = row.createCell(0);
cell.setCellValue("id");
cell = row.createCell(1);
cell.setCellValue("password");

这样就建立好一个表了,hssfSheet就是这个excel表格的一个“面”,叫“message”

通过这个面hssfSheet可以新建一个给定行号的行row

通过行可以构建一个给定列号的单元格cell

即,cell是某面某行某列的单元格

所有的操作都是基于单元格来说的

切记!保存操作:

FileOutputStream fos;
try {
    // 输出流,新建excel表(路径文件名)
	fos = new FileOutputStream("message.xls"); 
    // 将hssfWorkbook对应的excel表格写入
	hssfWorkbook.write(fos);
    // 关闭输出流
	fos.close();
} catch (FileNotFoundException e) {
	e.printStackTrace();
} catch (IOException e) {
	e.printStackTrace();
}

结果:


写入

// 写 的前提是有这个excel表,因此要【取】也要【存】
// 故文件输入流和输出流都必须有
FileInputStream fis = null;
FileOutputStream fos = null;
try {
    // 找到文件
	fis = new FileInputStream("message.xls");
	HSSFWorkbook hssfWorkbook = new HSSFWorkbook(fis);
	HSSFSheet hssfSheet = hssfWorkbook.getSheet("message");
	if (hssfSheet == null) {
		// 未找到的操作
	}
    // 定位最后一行位置并新建行
	int saveIndex = hssfSheet.getLastRowNum() + 1;
	HSSFRow row = hssfSheet.createRow(saveIndex);

    // 创建cell并填入
    row.createCell(0).setCellValue("003");
    row.createCell(1).setCellValue("003300");
    
    // 写入文件
    fos = new FileOutputStream("message.xls");
    hssfWorkbook.write(fos);

    } catch (FileNotFoundException e) {
	    e.printStackTrace();
    } catch (IOException e) {
    	e.printStackTrace();
    } catch (IllegalArgumentException e) {
	    e.printStackTrace();
    } finally {
	    fis.close();
	    fos.close();
    }

结果:


FileInputStream fis = null;
try {
	fis = new FileInputStream(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值