JAVA使用easyExcel导出数据到EXCEl,导出数据不全问题解决
- 问题描述
- 解决思路一
- 解决思路二
- 温馨提示
问题描述
JAVA使用easyExcel导出数据到EXCEl,导出数据不全问题。
导出的excel部分列有数据,好几列没有数据
解决思路一
从网上百度查询,大多数的解决思路是说:
maven坐标只添加了easyExcel依赖导致数据无法写入到excel文件中。注意必须要加入poi的相关依赖才能使用easyExcel中的读写功能。
对于这种解决思路,解决办法也是很简单,看一下自己的maven是否存在poi的相关依赖。如果没有,导入相关依赖,如下:
<!--easyexcel -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>${easyexcel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.1</version>
</dependency>
但是这种解决办法对我不起作用。
解决思路二
于是我开始排查问题,为什么有的部分列能导出数据,有的却没有数据。最后终于发现了问题:
是因为我的导出实体子弹属性首字母大写了,这个真的非常尴尬。因为题主平时除了写java代码还要写C#项目的代码,C#项目代码里面要求首字母都大写,所以习惯了,写成了大写,这个一定要注意啊,java的驼峰命名还是要遵循的。
/**
* @author Eric.Yang
* @version V1.1
* @date 2024/10/14
* @description TODO
*/
@Data
@ExcelIgnoreUnannotated
public class MB51Vo implements Serializable {
/*** *****/
@ExcelProperty(value = "Material")
@ColumnWidth(40)
private String Material;
/*** *****/
@ExcelProperty(value = "Plant")
private String Plant;
/*** *****/
@ExcelProperty(value = "Storage location")
private String StorageLocation;
/*** *****/
@ExcelProperty(value = "Movement type")
private String MovementType;
/*** *****/
@ExcelProperty(value = "Material Document")
private String MaterialDocument;
}
如上所示,把导出实体对应的Excel改为驼峰式命名,小写开头就合适了。记录一下,两种语言的差距。
温馨提示
如有帮助,转发和使用请注明出处,感谢开源,感觉Code。