Skip to content
This repository was archived by the owner on Sep 4, 2025. It is now read-only.

关于inlineStr 解析的问题 #3860

@vesio

Description

@vesio

建议先去看文档

快速开始常见问题

触发场景描述

用户给了一个excel文件,用wps打开显示的值是 1
我收到excel文件,用easyexcel解析出来的值是 201
具体是由 inlineStr 这个类型导致的
我看了一下excle里面的sheet1.xml
easyexcel的代码是把 20 和 1
的两个值拼接到一起了

<c r="M2" s="2" t="inlineStr">
    <v>20</v>
    <is>
        <t>1</t>
    </is>
</c>

触发Bug的代码, 控制台输出的最后一段数据是 12:"201", 说明easyexcel 取到的数据是 201

    @Test
    public void noModelRead() {
        //String fileName = TestFileUtil.getPath() + "demo" + File.separator + "demo.xlsx";
        String fileName = "D:\\test\\bug.xlsx";
        // 这里 只要,然后读取第一个sheet 同步读取会自动finish
        EasyExcel.read(fileName, new NoModelDataListener()).sheet().doRead();
        // 控制台输出
        //[main] INFO com.alibaba.easyexcel.test.demo.read.NoModelDataListener - 解析到一条数据:{0:"15258822991196",6:"16扶手二[5222]",7:"17199467844119",8:"18北京大版城央首府24栋2503[5222]",10:"19美丽洲椰子水350ml*12",12:"201"}
        //[main] INFO com.alibaba.easyexcel.test.demo.read.NoModelDataListener - 1条数据,开始存储数据库!
        //[main] INFO com.alibaba.easyexcel.test.demo.read.NoModelDataListener - 存储数据库成功!
        //[main] INFO com.alibaba.easyexcel.test.demo.read.NoModelDataListener - 所有数据解析完成!
    }

我用poi的 XSSFWorkbook 读取这个文件读取到的是, 最后的输出是 1

    @Test
    public void mytest() throws Exception {
        XSSFWorkbook workbook = new XSSFWorkbook("D:\\test\\bug.xlsx");
        XSSFSheet sheet = workbook.getSheetAt(0);
        for (Row row : sheet) {
            StringBuilder sb = new StringBuilder();
            for (Cell cell : row) {
                sb.append(cell.getStringCellValue()).append(" ");
            }
            System.out.println(sb);
        }
        // 控制台输出
        //原始单号 下单时间 付款时间 承诺发货时间 客户邮箱 QQ 收货人 手机 收货地址 客户备注 货品名称 规格 数量 物流公司 物流单号 
        //258822991196 扶手二[5222] 199467844119 北京大版城央首府24栋2503[5222] 美丽洲椰子水350ml*12 1
    }

提示的异常或者没有达到的效果

上面的代码都是用 easyexcel 4.0.1执行的

我试过用 easyexcel 2.2.6也会有这样的问题
这样的问题会导致用户那边看到的数据和我取到的数据不一致,用户会很困惑
用户那边的excel也不知道是什么软件生成的

我查了一下通义千问 说是这个文件是错误的xml结构,但是wps确实是可以解析,poi也能解析
image

出问题的文件也附带了
bug.xlsx

Metadata

Metadata

Labels

bugSomething isn't workingdevelopment completedDevelopment completed, waiting for release

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions