z=y=z 2023-09-04 10:45 采纳率: 33.3%
浏览 4

easyExcel读取Excel,数据处理

img


这种excel读取出来的数据是一行一行的,怎么修改成这样的数据格式


[ExamInfo{answer='新冠肺炎起源于哪一年?', stem='A', analyse='经验得知', singleScore=2, 
        eaxmChoiceInfoList=[EaxmChoiceInfo{choiceType='A', optionContent='2019'}, 
                            EaxmChoiceInfo{choiceType='B', optionContent='2022'},
                            EaxmChoiceInfo{choiceType='C', optionContent='2021'},
                            EaxmChoiceInfo{choiceType='D', optionContent='2003'}]},
    ExamInfo{answer='刘备的最好的朋友是谁?', stem='B', analyse='猜的', singleScore=2, 
        eaxmChoiceInfoList=[EaxmChoiceInfo{choiceType='A', optionContent='关羽'},
                            EaxmChoiceInfo{choiceType='B', optionContent='诸葛亮'},
                            EaxmChoiceInfo{choiceType='C', optionContent='张飞'}, EaxmChoiceInfo{choiceType='D', optionContent='曹操'}]}]
  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-09-04 12:11
    关注

    引用 皆我百晓生 小程序回复内容作答:
    要将Excel中读取的数据转换成上述的数据格式,可以按照以下步骤进行处理:

    1. 使用easyExcel库读取Excel文件,并将每一行的数据存储到一个对象中。
    2. 创建一个列表,用于存储所有的ExamInfo对象。
    3. 遍历每个对象,将其转换为所需的格式,并添加到列表中。

    具体的实现代码如下:

    // 创建一个类用来存储ExamInfo对象的数据
    class ExamInfo {
        private String answer;
        private String stem;
        private String analyse;
        private int singleScore;
        private List<EaxmChoiceInfo> eaxmChoiceInfoList;
    
        // 省略getter和setter方法
    }
    
    // 创建一个类用来存储EaxmChoiceInfo对象的数据
    class EaxmChoiceInfo {
        private String choiceType;
        private String optionContent;
    
        // 省略getter和setter方法
    }
    
    // 主函数中的代码
    public static void main(String[] args) {
        // 使用easyExcel库读取Excel文件,得到一个List<List<String>>结构的数据集合
        List<List<String>> excelData = readExcel();
    
        // 创建一个列表用于存储所有的ExamInfo对象
        List<ExamInfo> examInfos = new ArrayList<>();
    
        // 遍历每一行数据,并将其转换为ExamInfo对象
        for (List<String> row : excelData) {
            ExamInfo examInfo = new ExamInfo();
            examInfo.setAnswer(row.get(0));
            examInfo.setStem(row.get(1));
            examInfo.setAnalyse(row.get(2));
            examInfo.setSingleScore(Integer.parseInt(row.get(3)));
    
            // 创建一个列表用于存储EaxmChoiceInfo对象的数据
            List<EaxmChoiceInfo> eaxmChoiceInfos = new ArrayList<>();
    
            // 将选项数据转换为EaxmChoiceInfo对象,并添加到列表中
            for (int i = 4; i < row.size(); i++) {
                EaxmChoiceInfo eaxmChoiceInfo = new EaxmChoiceInfo();
                eaxmChoiceInfo.setChoiceType(String.valueOf((char) ('A' + i - 4)));
                eaxmChoiceInfo.setOptionContent(row.get(i));
                eaxmChoiceInfos.add(eaxmChoiceInfo);
            }
    
            examInfo.setEaxmChoiceInfoList(eaxmChoiceInfos);
            examInfos.add(examInfo);
        }
    
        // 打印转换后的数据
        for (ExamInfo examInfo : examInfos) {
            System.out.println(examInfo);
        }
    }
    
    // 读取Excel文件的方法
    public static List<List<String>> readExcel() {
        // 使用easyExcel库读取Excel文件,并返回一个List<List<String>>结构的数据集合
        // 具体的读取操作可参考easyExcel的文档说明
    }
    

    上述代码中的readExcel()方法需要根据使用的具体的easyExcel库进行实现。请参考相应的文档,了解如何使用该库进行Excel文件的读取操作。

    评论

报告相同问题?

问题事件

  • 创建了问题 9月4日

悬赏问题

  • ¥15 ul做导航栏格式不对怎么改?
  • ¥20 用户端如何上传图片到服务器和数据库里
  • ¥15 现在研究生在烦开题,看了一些文献,但不知道自己要做什么,求指导。
  • ¥15 vivado封装时总是显示缺少一个dcp文件
  • ¥100 pxe uefi启动 tinycore
  • ¥15 我pycharm运行jupyter时出现Jupyter server process exited with code 1,然后打开cmd显示如下
  • ¥15 可否使用carsim-simulink进行四轮独立转向汽车的联合仿真,实现四轮独立转向汽车原地旋转、斜向形式、横移等动作,如果可以的话在carsim中如何进行相应设置
  • ¥15 Caché 2016 在Java环境通过jdbc 执行sql报Parameter list mismatch错误,但是同样的sql使用连接工具可以查询出数据
  • ¥15 疾病的获得与年龄是否有关
  • ¥15 opencv.js内存,CPU飙升