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='曹操'}]}]

引用 皆我百晓生 小程序回复内容作答:
要将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文件的读取操作。

要么就按照题号手动分组处理,要么就看看你的用的excel 文档,找一下官方有没有提供解决方案

【以下回答由 GPT 生成】

我可以通过使用Apache POI库来实现读取Excel文件并处理数据。以下是解决该问题的步骤和示例代码:

  1. 首先,确保已将Apache POI库添加到Java项目的依赖中。您可以在Maven或Gradle中添加以下依赖项:
<!-- Apache POI -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.1.2</version>
</dependency>
  1. 使用POI库来读取Excel文件。您需要实例化一个Workbook对象,并根据文件类型(.xls或.xlsx)选择相应的工作簿。
import org.apache.poi.ss.usermodel.*;

public class ExcelReader {
    public void readExcel(String filePath) {
        try {
            // 创建Workbook对象
            Workbook workbook = WorkbookFactory.create(new File(filePath));

            // 获取第一个Sheet
            Sheet sheet = workbook.getSheetAt(0);

            // 遍历行
            for (Row row : sheet) {
                // 获取单元格的值并处理
                String answer = row.getCell(0).getStringCellValue();
                String stem = row.getCell(1).getStringCellValue();
                String analyse = row.getCell(2).getStringCellValue();
                int singleScore = (int) row.getCell(3).getNumericCellValue();

                // 创建ExamInfo对象并设置属性值

                // ...

                // 处理eaxmChoiceInfoList,遍历行中的更多单元格

                // ...

                // 将ExamInfo对象添加到数据集合中

                // ...
            }

            // 处理数据集合,按照所需格式进行操作

            // ...

            // 关闭Workbook对象
            workbook.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
  1. 在上面的代码中,您需要根据您实际的Excel文件格式设置单元格索引,并使用合适的方法来获取和处理单元格的值。

  2. 根据需要创建ExamInfo和EaxmChoiceInfo类,并使用上述代码中的注释部分逐步处理数据。

  3. 根据您的需求,可以选择将处理后的数据存储到数据库、输出到文件或进行其他操作。

请注意,上述代码仅提供了读取Excel文件和处理数据的示例,您可能需要根据您的具体需求进行适当的修改和完善。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^