EasyExcel implementa la exportación de archivos de varias hojas

FácilExcel

EasyExcel es una herramienta de procesamiento de Excel rápida y concisa basada en Java que resuelve el desbordamiento de memoria de archivos grandes.
Le permite completar rápidamente la lectura, escritura y otras funciones de Excel sin considerar el rendimiento, la memoria y otros factores.

Introducir dependencias

 	<dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>easyexcel</artifactId>
        <version>3.1.3</version> 
    </dependency>

Estructura de la tabla

mesa de estudiantes

CREATE TABLE `student`  (
  `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '学生表ID',
  `sname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '学生姓名',
  `sno` bigint NOT NULL COMMENT '学号',
  `sex` char(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '性别',
  `age` int NOT NULL COMMENT '年龄',
  `is_deleted` tinyint UNSIGNED NOT NULL DEFAULT 0 COMMENT '是否删除',
  PRIMARY KEY (`id`)
);

Insertar descripción de la imagen aquí

Horario de clase

CREATE TABLE `course`  (
  `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '课程表ID',
  `cname` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '课程名',
  `cno` bigint NOT NULL COMMENT '课程号',
  `tno` bigint NOT NULL COMMENT '任教教师编码',
  `is_deleted` tinyint(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT '是否删除',
  PRIMARY KEY (`id`)
);

Insertar descripción de la imagen aquí

lista de profesores

CREATE TABLE `teacher`  (
  `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '教师表ID',
  `tname` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '教师姓名',
  `tno` bigint NOT NULL COMMENT '教师编号',
  `sex` char(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '性别',
  `age` int NOT NULL COMMENT '年龄',
  `is_deleted` tinyint(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT '是否删除',
  PRIMARY KEY (`id`)
);

Insertar descripción de la imagen aquí
Parte de los datos se cargaron al cargar varias hojas, por lo que actualmente hay datos en la tabla.

Estructura del proyecto

Insertar descripción de la imagen aquí

Descargar plantilla de clase de entidad

estudiantevo

@Data
public class StudentVo {
    
    

    /**学生姓名**/
    @ExcelProperty(value = "姓名",index = 0)
    private String sname;
    /**学号**/
    @ExcelProperty(value = "学号",index = 1)
    private Long sno;
    /**性别**/
    @ExcelProperty(value = "性别",index = 2)
    private String sex;
    /**年龄**/
    @ExcelProperty(value = "年龄",index = 3)
    private Integer age;

}

CursoVo

@Data
public class CourseVo {
    
    
    /**课程名**/
    @ExcelProperty(value = "课程名",index = 0)
    private String cname;
    /**课程号**/
    @ExcelProperty(value = "课程号",index = 1)
    private Long cno;
    /**任教教师编号**/
    @ExcelProperty(value = "任教教师编号",index = 2)
    private Long tno;
}

profesorvo

@Data
public class TeacherVo {
    
    
    /**教师姓名**/
    @ExcelProperty(value = "姓名", index = 0)
    private String tname;
    /**教师编号**/
    @ExcelProperty(value = "教师编号", index = 1)
    private Long tno;
    /**性别**/
    @ExcelProperty(value = "性别", index = 2)
    private String sex;
    /**年龄**/
    @ExcelProperty(value = "年龄", index = 3)
    private Integer age;
}

Controlador

@RestController
@RequestMapping("/easyExcel")
public class EasyExcelController {
    
    

	@Resource
    private IEasyExcelService easyExcelService;

    @PostMapping("excelExport")
    public void excelExport(HttpServletResponse response){
    
    
        easyExcelService.excelExport(response);
    }
}

Servicio

Servicio EasyExcel

public interface IEasyExcelService {
    
    
    void excelExport(HttpServletResponse response);
}

Servicio Estudiantil

public interface IStudentService extends IService<Student> {
    
    
}

Servicio de curso

public interface ICourseService extends IService<Course> {
    
    
}

Servicio de Maestros

public interface ITeacherService extends IService<Teacher> {
    
    
}

ServicioImpl

EasyExcelServiceImpl

@Service
public class EasyExcelServiceImpl implements IEasyExcelService {
    
    

    @Resource
    private StudentMapper studentMapper;
    @Resource
    private CourseMapper courseMapper;
    @Resource
    private TeacherMapper teacherMapper;

   @Override
    public void excelExport(HttpServletResponse response) {
    
    
        try {
    
    
            String fileName = "student";
            ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build();
            WriteSheet studentInfo = EasyExcel.writerSheet(0,"student")
                    .head(StudentVo.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                    .build();
            WriteSheet courseInfo = EasyExcel.writerSheet(1,"course")
                    .head(CourseVo.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                    .build();
            WriteSheet teacherInfo = EasyExcel.writerSheet(2,"teacher")
                    .head(TeacherVo.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                    .build();

            List<Student> studentList = studentMapper.selectList(null);
            List<Course> courseList = courseMapper.selectList(null);
            List<Teacher> teacherList = teacherMapper.selectList(null);
            excelWriter.write(studentList,studentInfo);
            excelWriter.write(courseList,courseInfo);
            excelWriter.write(teacherList,teacherInfo);
            response.setContentType("application/vnd.ms-excel;charset=utf-8");
            response.setCharacterEncoding("UTF-8");
            response.setHeader("Content-Disposition","attachment;filename="+fileName+".xlsx");
            excelWriter.finish();
        }catch (IOException e){
    
    
            e.printStackTrace();
        }
    }

EstudianteServicioImpl

@Service
public class StudentServiceImpl extends ServiceImpl<StudentMapper, Student> implements IStudentService {
    
    
}

CursoServicioImpl

@Service
public class CourseServiceImpl extends ServiceImpl<CourseMapper, Course> implements ICourseService {
    
    
}

MaestroServicioImpl

@Service
public class TeacherServiceImpl extends ServiceImpl<TeacherMapper, Teacher> implements ITeacherService {
    
    
}

mapeador

EstudianteMapeador

public interface StudentMapper extends BaseMapper<Student> {
    
    
}

Mapeador de cursos

public interface CourseMapper extends BaseMapper<Course> {
    
    
}

MaestroMapeador

public interface TeacherMapper extends BaseMapper<Teacher> {
    
    
}

Proyecto de inicio

Insertar descripción de la imagen aquí

prueba

Utilice cartero para probar. El método de prueba es el siguiente:
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
después de la descarga, abra la tabla de Excel para ver el contenido.
Por favor agregue la descripción de la imagen.
Por favor agregue la descripción de la imagen.
Por favor agregue la descripción de la imagen.

Operación completada

Supongo que te gusta

Origin blog.csdn.net/m0_68681879/article/details/132449121
Recomendado
Clasificación