java读取excel文件后写入数据,然后生成新的excel文件到指定目录,使用hutool
时间: 2023-11-27 11:49:27 浏览: 43
使用Hutool对Excel进行操作非常方便,可以按照以下步骤实现:
1. 导入Hutool的Excel依赖,例如:
```xml
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.10</version>
</dependency>
```
2. 读取Excel文件,例如:
```java
// 加载Excel文件
ExcelReader reader = ExcelUtil.getReader("path/to/excel.xlsx");
// 获取Sheet
ExcelSheet sheet = reader.getSheet(0);
// 遍历行
for (int i = sheet.getFirstDataRowIndex(); i <= sheet.getLastDataRowIndex(); i++) {
ExcelRow row = sheet.getRow(i);
// 读取单元格数据
String cellValue = row.getCell(0).getRawValue();
// TODO: 处理数据
}
// 关闭资源
reader.close();
```
3. 写入数据到新的Excel文件,例如:
```java
// 创建Excel工作簿
ExcelWriter writer = ExcelUtil.getWriter("path/to/new.xlsx");
// 添加Sheet并写入数据
writer.addSheet("Sheet1");
writer.writeHeadRow(Arrays.asList("标题1", "标题2", "标题3"));
writer.writeRow(Arrays.asList("数据1", "数据2", "数据3"), true);
// 关闭资源
writer.close();
```
4. 完整代码示例:
```java
import cn.hutool.poi.excel.ExcelReader;
import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.ExcelWriter;
import cn.hutool.poi.excel.sax.handler.RowHandler;
import cn.hutool.poi.excel.sax.handler.SheetHandler;
import cn.hutool.poi.excel.sax.handler.StyleHandler;
import cn.hutool.poi.excel.sax.handler.WorkbookHandler;
import cn.hutool.poi.excel.sax.handler.XlsxRowHandler;
import cn.hutool.poi.excel.sax.handler.XlsxSheetHandler;
import cn.hutool.poi.excel.sax.handler.XlsxStyleHandler;
import cn.hutool.poi.excel.sax.handler.XlsxWorkbookHandler;
import java.util.Arrays;
public class ExcelDemo {
public static void main(String[] args) {
// 读取Excel文件
ExcelReader reader = ExcelUtil.getReader("path/to/excel.xlsx");
// 获取Sheet
ExcelSheet sheet = reader.getSheet(0);
// 遍历行
for (int i = sheet.getFirstDataRowIndex(); i <= sheet.getLastDataRowIndex(); i++) {
ExcelRow row = sheet.getRow(i);
// 读取单元格数据
String cellValue = row.getCell(0).getRawValue();
// TODO: 处理数据
}
// 关闭资源
reader.close();
// 创建Excel工作簿
ExcelWriter writer = ExcelUtil.getWriter("path/to/new.xlsx");
// 添加Sheet并写入数据
writer.addSheet("Sheet1");
writer.writeHeadRow(Arrays.asList("标题1", "标题2", "标题3"));
writer.writeRow(Arrays.asList("数据1", "数据2", "数据3"), true);
// 关闭资源
writer.close();
}
}
```
注意:读取Excel文件时,需要根据文件类型选择适当的`ExcelReader`,例如:
- 如果是.xls文件,使用`ExcelReader reader = ExcelUtil.getReader("path/to/excel.xls");`
- 如果是.xlsx文件,使用`ExcelReader reader = ExcelUtil.getBigReader("path/to/excel.xlsx");`