关于POI操作Excel

1 导包:

<dependencies>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>5.2.1</version>
    </dependency>
    
    <!-- 要使用 XSSFWorkbook 时导入 -->
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>5.2.1</version>
    </dependency>
    
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.17.2</version>
    </dependency>

</dependencies>

2 读取Excel

2.1 将文档读取为Java对象

//获取系统文档
FileInputStream fileInputStream = new FileInputStream("/Users/apple/Develop/workspace/test/poi-read/src/main/resources/target.xlsx");

//创建工作薄对象
XSSFWorkbook xssfWorkbook = new XSSFWorkbook(fileInputStream);

2.2 读取Sheet

// 获取了指定名字(这里为products)的sheet,有一个重载方法,可以根据sheet索引读取
XSSFSheet sheet = xssfWorkbook.getSheet("prducts");

2.3 读取行(Row)

// 获取当前 sheet 下数据行数
int rowNums = sheet.getLastRowNum();
// 通过指定行数来获取对应的行数据
XSSFRow row = sheet.getRow(0)

2.4 读取单元格/列(Cell)

// 获取单元格的数量/列数
short cellNum = row.getLastCellNum();
// 根据单元格索引获取单元格
XSSFCell cell = row.getCell((short) 0);
// 获取单元格数据,XSSFCell 有多个getXxxValue 的方法来获取不同数据类型的数据
double value = cell.getNumericCellValue()

2.5 关闭文件引用

// 当后续不对Excel文件操作的时候注意要关闭对文件的引用
xssfWorkbook.close();

3 创建Excel

3.1 创建Excel对象

XSSFWorkbook workbook = new XSSFWorkbook();

3.2 创建Sheet

// 通过指定名字的方式创建Sheet,也可以传入索引创建
XSSFSheet userAgeLte3Sheet = workbook.createSheet("products");

3.3 创建行(Row)

// 通过指定行索引来创建行(Row)
XSSFRow row = sheet.createRow(0);

3.4 创建单元格/列(Cell)

// 过指定行索引来创建单元格/列(Cell)
XSSFCell cell = row.createCell(0);

3.5 向单元格中写入数据

// XSSFCell 有多个 setCellValue 重载方法来写入不同数据类型的数据
cell.setCellValue("ID");
3.6 写入到本地文件
// 指定要输出的文件
String path = "/Users/apple/Desktop/test/target.xlsx";
FileOutputStream fileOutputStream = new FileOutputStream(path);
// 写入到文件流中
workbook.write(fileOutputStream);

// 关闭WorkBook 接触对文件的引用
workbook.close();
// 注意关闭流
fileOutputStream.close();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值