简单的Excel导入导出工具

本文详细介绍了一种在Java中实现Excel多Sheet导出和导入的方法。通过创建模型类并利用注解,实现了数据的自动填充和读取,提高了Excel处理的效率和灵活性。

支持多Sheet导出导入

1.创建模型

@Data
@ExcelSheet(sheet = "判断题", title = "判断题")
public class QuestionJudgeEo {

    @ExcelField("题目")
    private String stem;

    @ExcelField("答案")
    private String answer;

    @ExcelField("参考分值")
    private String score;

}
复制代码

2.导出

@Test
    public void export() {

        //  创建对象集合
        List<QuestionJudgeEo> judges = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            QuestionJudgeEo questionJudgeEo = new QuestionJudgeEo();
            questionJudgeEo.setStem("stem-" + i);
            if (i % 2 == 1) {
                questionJudgeEo.setAnswer("正确");
            } else {
                questionJudgeEo.setAnswer("错误");
            }
            questionJudgeEo.setScore(i + "");
            judges.add(questionJudgeEo);
        }

        //  创建对象集合
        ArrayList<QuestionChoiceEo> choiceEos = new ArrayList<>();
        for (int i = 0; i < 5; i++) {
            QuestionChoiceEo questionChoiceEo = new QuestionChoiceEo();
            questionChoiceEo.setStem("stem-" + i);
            questionChoiceEo.setOptionA("option-" + "A");
            questionChoiceEo.setOptionB("option-" + "B");
            questionChoiceEo.setOptionC("option-" + "C");
            questionChoiceEo.setOptionD("option-" + "D");
            questionChoiceEo.setAnswer("A");
            questionChoiceEo.setScore(i + "");
            choiceEos.add(questionChoiceEo);
        }

        //获取工作簿
        Workbook workbook = excelExportService.createWorkbook();
        //写入Sheet1  参数: 工作簿对象, 对象集合, 对象类型
        excelExportService.getWorkbook(workbook, judges, QuestionJudgeEo.class);
        //写入Sheet2  参数: 工作簿对象, 对象集合, 对象类型
        excelExportService.getWorkbook(workbook, choiceEos, QuestionChoiceEo.class);

        try {
            FileOutputStream fileOutputStream = new FileOutputStream("D:/123.xlsx");
            workbook.write(fileOutputStream);
            workbook.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
复制代码

2.导入

    @Test
    public void importt() {
        try {

            ExcelImportServiceImpl excelImportService = new ExcelImportServiceImpl();
            Workbook workbook = excelImportService.createWorkbook("D:/123.xlsx");   //指定文件

            List<QuestionChoiceEo> itemList = excelImportService.getItemList(workbook, QuestionChoiceEo.class);     //解析Sheet1, excel生成对象集合

            List<QuestionJudgeEo> itemList1 = excelImportService.getItemList(workbook, QuestionJudgeEo.class);      //解析Sheet2, excel生成对象集合

            System.out.println();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

复制代码

项目地址: github.com/QinhuaZhao/…, 测试类含有使用方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值