easyexcel解决中文文件名乱码的问题
时间: 2023-08-12 11:21:44 浏览: 735
文件下载,二进制流转换成文件 解决中文名乱码的问题
3星 · 编辑精心推荐
EasyExcel 是一个基于 Java 的简单、省内存、易扩展的 Excel 读写工具,支持读取 Excel(2003/2007/2010/2013/2016/2019)和 CSV 格式的文件,同时支持将数据写入 Excel(2007/2010/2013/2016/2019)格式的文件。在使用 EasyExcel 读写 Excel 文件时,如果文件名包含中文,可能会出现乱码问题。解决方法如下:
1. 在读取 Excel 文件时,使用字节流读取,指定文件编码为 UTF-8,代码示例如下:
```java
InputStream inputStream = new FileInputStream("文件名.xlsx");
ExcelReader reader = new ExcelReader(inputStream, ExcelTypeEnum.XLSX, null, new AnalysisEventListener<Object>() {
@Override
public void invoke(Object object, AnalysisContext context) {
// do something
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
// do something
}
});
reader.read();
```
2. 在写入 Excel 文件时,使用 OutputStreamWriter 指定编码为 UTF-8,代码示例如下:
```java
OutputStream out = new FileOutputStream("文件名.xlsx");
ExcelWriter writer = new ExcelWriter(out, ExcelTypeEnum.XLSX);
writer.write(data, sheet, writeSheet);
writer.finish();
// 指定编码为 UTF-8
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(out, "UTF-8");
outputStreamWriter.write(new String(out.toByteArray()));
outputStreamWriter.flush();
outputStreamWriter.close();
```
通过上述方法,可以解决 EasyExcel 中文文件名乱码的问题。
阅读全文