Q
[alibaba/easyexcel]easyexcel读取excel中的x000D字符如何处理【例如:在excel中填写的是“-x0002”,而Java中变成了“x005f_x0002”】
9
异常提示
大家尽量把问题一次性描述清楚,然后贴上全部异常,这样方便把问题一次性解决掉。
至少大家要符合一个原则就是,能让其他人复现出这个问题,如果无法复现,肯定无法解决。
A
回答
1
该问题无法复现
请给出具体的代码以供复现
0
触发Bug的代码
1、新建一个User.xlsx,内容如下:
2、pom中引入xml相关依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
<version>1.18.24</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.4</version>
</dependency>
2、创建实体
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
@Data
public class DemoData {
// 示例参数:2
@ExcelProperty(value = "编号", index = 0)
private String string;
// 示例参数:_x0002_
@ExcelProperty(value = "姓名", index = 1)
private String doubleData;
}
3、实现一个EasyExcel提供的类AnalysisEventListener
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.yael.entity.DemoData;
public class DemoDataListener extends AnalysisEventListener<DemoData> {
@Override
public void invoke(DemoData demoData, AnalysisContext analysisContext) {
System.out.println(demoData);
}
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {}
}
4、测试类并执行
import com.alibaba.excel.EasyExcel;
import com.yael.entity.DemoData;
import com.yael.listeners.DemoDataListener;
public class TestExcel {
public static void main(String[] args) {
String fileName="D:\\User.xlsx";
EasyExcel.read(fileName, DemoData.class,new DemoDataListener())
.sheet()
.doRead();
}
}
5、打印日志:
7
2.2.4的确有这个bug的存在,该版本除了超级严重的bug,否则不在考虑更新,在最新的版本3.3.2这个bug已经被修复了