在调用 service 存数据到数据库的同时,可以在适当的位置调用 EasyExcel 的写入方法。具体修改代码如下:

// 引入easyexcel的相关依赖 import com.alibaba.excel.EasyExcel;

// 在调用service存数据到数据库的同时,写入excel表格 schResService.addRes(schRes); EasyExcel.write('filename.xlsx', SchRes.class).sheet('Sheet1').doWrite(Collections.singletonList(schRes));

// 注意:这里的'filename.xlsx'是要写入的文件名,SchRes.class是要写入的数据类型,sheet('Sheet1')是要写入的sheet名,doWrite()方法中的参数是要写入的数据,这里只写了一条数据,如果有多条需要写入,可以将数据放在List中传入doWrite()方法。

classes.forEach(x -> {
            int majorIndex = data.getDepts().indexOf(x.getDept());
            int coursesIndex = data.getCourses().indexOf(x.getCourse());
            int roomsIndex = data.getRooms().indexOf(x.getRoom());
            int instructorsIndex = data.getInstructors().indexOf(x.getInstructor());
            int meetingTimeIndex = data.getMeetingTimes().indexOf(x.getMeetingTime());

            schRes.setClassNumb(classNumb);
            schRes.setDepartent(data.getDepts().get(majorIndex).getName());
            schRes.setCourse(data.getCourses().get(coursesIndex).getName());
            schRes.setNumber(data.getCourses().get(coursesIndex).getNumber());
            schRes.setMaxofs(x.getCourse().getMaxNumbOfStudents());
            schRes.setRoom(x.getRoom().getNumber());
            schRes.setCapacity(x.getRoom().getSeatingCapacity());
            schRes.setInsname(data.getInstructors().get(instructorsIndex).getName());
            schRes.setInsid(data.getInstructors().get(instructorsIndex).getId());
            schRes.setMtime(data.getMeetingTimes().get(meetingTimeIndex).getTime());
            schRes.setMid(data.getMeetingTimes().get(meetingTimeIndex).getId());
            schResService.addRes(schRes);

            // 在这里写入Excel表格
            EasyExcel.write('filename.xlsx', SchRes.class).sheet('Sheet1').doWrite(Collections.singletonList(schRes));

            System.out.print("  ");
            System.out.print(String.format("%1$02d ", classNumb) + " | ");
            System.out.print(String.format("%1$4s", data.getDepts().get(majorIndex).getName()) + " | ");
            System.out.print(String.format("%1$21s", data.getCourses().get(coursesIndex).getName() +
                    "(" + data.getCourses().get(coursesIndex).getNumber() + "," +
                    x.getCourse().getMaxNumbOfStudents()) + ")  | ");
            System.out.print(String.format("%1$10s", data.getRooms().get(roomsIndex).getNumber() +
                    "(" + x.getRoom().getSeatingCapacity()) + ") | ");
            System.out.print(String.format("%1$15s", data.getInstructors().get(instructorsIndex).getName() +
                    "(" + data.getInstructors().get(instructorsIndex).getId() + ")") + "|");
            System.out.println(data.getMeetingTimes().get(meetingTimeIndex).getTime() +
                    "(" + data.getMeetingTimes().get(meetingTimeIndex).getId() + ")");

            classNumb++;

        });

注意:

  • 以上代码示例仅供参考,具体实现可能需要根据您的实际情况进行调整。
  • 确保已正确引入 EasyExcel 的依赖库。
  • 可以根据需要修改文件名、Sheet 名以及写入的数据。
  • 可以使用 List 存储多个数据并一次性写入 Excel 表格。
  • 在实际应用中,建议将写入 Excel 的操作放在单独的方法中,以提高代码可读性和可维护性。
  • 为了提高效率,建议将 EasyExcel 写入操作放在数据库操作完成之后进行。

通过以上步骤,您可以轻松实现将数据同时写入 Excel 表格和数据库,并提高开发效率。

Java 使用 EasyExcel 写入 Excel 表格的同时存数据到数据库

原文地址: https://www.cveoy.top/t/topic/m7Fd 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录