You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Spring Batch批量导入Excel XLSX数据到数据库遇FlatFileParseException如何解决

问题根源

你当前的解析逻辑存在核心错误,和XLSX文件格式、文件内特殊字符无关:

  • FlatFileItemReader是Spring Batch提供的纯文本平面文件读取器,仅支持CSV、TXT这类按行存储的纯文本格式。XLSX是二进制压缩格式的Excel文件,完全无法被该读取器解析,你报错里的乱码就是XLSX二进制内容被强制当作文本读取的结果。
解决方法

有两种可行方案:

方案1:将XLSX转成CSV格式使用现有配置

将你的BulkData.xlsx文件另存为UTF-8编码的CSV格式文件,修改读取资源路径为CSV文件即可,无需修改其他代码:

reader.setResource(new ClassPathResource("BulkData.csv"));

注意CSV的列分隔符要和DelimitedLineTokenizer的默认分隔符(逗号)匹配,如果你用了其他分隔符需要手动调用setDelimiter方法指定。

方案2:替换为支持XLSX格式的ItemReader

如果必须直接读取XLSX文件,你需要自定义适配XLSX格式的ItemReader,可以基于Apache POI或者EasyExcel工具封装实现:

自定义Reader需要实现ItemReader接口,逐行读取Excel sheet中的行数据,映射为User对象返回即可,无需使用原有的LineMapper、DelimitedLineTokenizer相关逻辑。

内容的提问来源于stack exchange,提问作者Bharat Chaudhari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 02:21:02