SpringBoot: integre EasyExcel para realizar EasyExcel

1. Fácil Excel

EasyExcel es una herramienta de operación de Excel de código abierto basada en Java que proporciona una API simple y poderosa para que los desarrolladores puedan leer, escribir, operar y generar archivos de Excel fácilmente.

EasyExcel admite la importación y exportación de archivos de Excel, puede manejar grandes cantidades de datos y tiene un alto rendimiento y un bajo uso de memoria. Puede leer datos en archivos de Excel y convertirlos en objetos Java, y también puede escribir objetos Java en archivos de Excel.

EasyExcel también proporciona opciones y funciones de formato enriquecidas, como configurar estilos de celda, fusionar celdas, configurar fórmulas, etc. Al mismo tiempo, EasyExcel también admite operaciones de subprocesos múltiples, lo que puede mejorar la eficiencia del procesamiento al procesar grandes cantidades de datos. Debido a sus funciones fáciles de usar, EasyExcel se usa ampliamente en la importación y exportación de datos, la generación de informes, el análisis de datos y otros campos.

ilustrar Enlace
dirección del proyecto https://github.com/alibaba/easyexcel
Enlace del código fuente https://www.yuque.com/easyexcel/doc/easyexcel

Dos, anotaciones comunes de EasyExcel

EasyExcel proporciona algunas anotaciones de uso común para identificar y controlar el comportamiento de los campos durante la lectura y escritura de Excel. Las siguientes son anotaciones comunes de EasyExcel:

@ExcelProperty: se utiliza para identificar campos en Excel. Puede especificar el índice de columna o el nombre de la columna del campo en Excel. Por ejemplo: @ExcelProperty("nombre"), @ExcelProperty(índice = 0).

@ExcelIgnore: se utiliza para identificar campos que no necesitan importarse ni exportarse.

@ExcelIgnoreUnannotated: se utiliza para identificar si los campos no identificados por la anotación @ExcelProperty se ignoran.

@ExcelHead: se utiliza para identificar el estilo del encabezado de la tabla de Excel. Puede configurar la altura del encabezado, el estilo de fuente, el color de fondo, etc.

@ExcelColumnWidth: se utiliza para establecer el ancho de las columnas de Excel.

@ExcelDateTimeFormat: se utiliza para establecer reglas de formato para campos de fecha y hora.

@ExcelBooleanFormat: se utiliza para configurar el texto de visualización de los campos de tipo booleano en Excel.

@ExcelNumberFormat: se utiliza para establecer reglas de formato para campos numéricos.

Estas anotaciones se pueden combinar según las necesidades reales para controlar de manera más flexible el comportamiento y el estilo de los campos durante el proceso de lectura y escritura de Excel.

Insertar descripción de la imagen aquí

3. Integre EasyExcel

3.1 Introduciendo dependencias

Para introducir las dependencias de EasyExcel, debe agregar las siguientes dependencias en el archivo pom.xml de su proyecto:

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

Esto traerá la última versión de EasyExcel (actualmente 2.3.0). Estudiantes, asegúrese de que Maven esté configurado correctamente y que las dependencias se puedan descargar desde el repositorio de Maven. Una vez completado, Maven descargará y administrará automáticamente las dependencias de EasyExcel, como se muestra en la imagen a continuación.

Insertar descripción de la imagen aquí

3.2 Definición de clase de entidad

Cuando se utiliza EasyExcel, las clases de entidad deben definirse de acuerdo con las siguientes reglas.

  • Las clases de entidad deben agregar la anotación @ExcelIgnoreUnannotated para garantizar que los campos no marcados por la anotación @ExcelProperty se ignoren.
  • Utilice la anotación @ExcelProperty para marcar los campos que deben leerse y escribirse en Excel, y puede especificar el índice de columna o el nombre de la columna del campo en Excel.
  • Puede utilizar otras anotaciones (como @ExcelDateTimeFormat, @ExcelNumberFormat, etc.) para definir mejor las reglas de formato del campo.

El siguiente es un código de muestra que muestra una definición de clase de entidad usando EasyExcel para leer y escribir archivos de Excel:

@ExcelIgnoreUnannotated
public class Student {
    
    
    @ExcelProperty(index = 0)   // 列索引为0
    private String name;

    @ExcelProperty(index = 1)   // 列索引为1
    private int age;
    
    @ExcelProperty(index = 2)   // 列索引为2
    private String gender;
    
    @ExcelProperty(index = 3)   // 列索引为3
    private Date birthday;
    
    // Getters and Setters
    // ...
}

En el código anterior, la clase Estudiante define 4 campos, correspondientes a las 4 columnas del archivo Excel. Al utilizar la anotación @ExcelProperty y especificar el índice de la columna, le decimos a EasyExcel que estos campos deben asignarse a las columnas correspondientes. Tenga en cuenta que esto es solo un ejemplo y puede definir más campos y anotaciones según sus propias necesidades para satisfacer las necesidades de lectura y escritura de Excel.

3.3 Convertidor personalizado

En EasyExcel, puede definir un convertidor personalizado implementando la interfaz Converter. La interfaz Converter tiene dos parámetros genéricos, que representan el tipo al leer y el tipo al escribir. A continuación se muestra un ejemplo simple que muestra cómo implementar la interfaz Converter para definir un convertidor que convierte un tipo booleano en una cadena.

public class BooleanToStringConverter implements Converter<Boolean, String> {
    
    

    @Override
    public String convertToExcelData(Boolean value) {
    
    
        return value ? "是" : "否";
    }
    
    @Override
    public Boolean convertToJavaData(String value) {
    
    
        return "是".equals(value);
    }
}

En el ejemplo anterior, BooleanToStringConverter implementa la interfaz Converter e implementa los métodos convertToExcelData() y convertToJavaData(). El método convertToExcelData() convierte un valor booleano en una cadena y el método convertToJavaData() convierte una cadena en un valor booleano.

Para utilizar este convertidor al leer o escribir Excel, puede asociar el convertidor con el campo correspondiente a través de la anotación @ExcelConverter, el código es el siguiente.

@ExcelProperty(index = 0)
@ExcelConverter(BooleanToStringConverter.class)
private Boolean married;

En el código anterior, BooleanToStringConverter se especifica como el convertidor del campo mediante la anotación @ExcelConverter, y EasyExcel utilizará este convertidor para la conversión de datos al leer o escribir Excel.

Al implementar la interfaz Converter, puede definir varios convertidores personalizados para cumplir con diferentes tipos de requisitos de conversión de datos.

Insertar descripción de la imagen aquí

3.4 Escribir y exportar interfaz de Excel

EasyExcel es una biblioteca de código abierto de Java que admite la exportación de archivos de Excel. A través de EasyExcel, los estudiantes pueden exportar fácilmente datos de objetos Java a archivos de Excel.

EasyExcel proporciona una rica API que puede configurar el estilo, formato y contenido de datos del Excel exportado. Es muy flexible y fácil de usar. Los estudiantes pueden usar EasyExcel para exportar varios tipos de datos, incluidos tipos básicos, colecciones, objetos personalizados, etc. Al mismo tiempo, EasyExcel también admite la exportación de grandes cantidades de datos y puede manejar eficazmente operaciones de exportación de grandes lotes de datos.

En resumen, EasyExcel es una herramienta potente y fácil de usar para exportar Excel. El siguiente es un código de muestra que muestra cómo usar EasyExcel para exportar la interfaz de Excel. Consúltelo como referencia.

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;

import java.util.ArrayList;
import java.util.List;

public class ExcelExportService {
    
    

    public void exportExcel(String filePath) {
    
    
        // 准备数据
        List<Student> studentList = prepareData();
    
        // 创建ExcelWriter对象
        ExcelWriter excelWriter = EasyExcel.write(filePath, Student.class).build();
    
        // 创建WriteSheet对象
        WriteSheet writeSheet = EasyExcel.writerSheet("学生信息").build();
    
        // 将数据写入Excel
        excelWriter.write(studentList, writeSheet);
    
        // 关闭ExcelWriter对象
        excelWriter.finish();
    }
    
    private List<Student> prepareData() {
    
    
        // 创建测试数据
        List<Student> studentList = new ArrayList<>();
        studentList.add(new Student("张三", 18, "男"));
        studentList.add(new Student("李四", 20, "女"));
        studentList.add(new Student("王五", 19, "男"));
        return studentList;
    }
    
    public static void main(String[] args) {
    
    
        ExcelExportService excelExportService = new ExcelExportService();
        excelExportService.exportExcel("student.xlsx");
    }
}

En el código anterior, la clase ExcelExportService encapsula la interfaz para exportar Excel. En el método exportExcel, primero se preparan los datos y luego se crea un objeto ExcelWriter, que se utiliza para escribir el archivo Excel. A continuación, cree un objeto WriteSheet para especificar el nombre de la hoja que se escribirá. Finalmente, los datos se escriben en Excel mediante el método excelWriter.write y la operación de escritura se completa mediante el método excelWriter.finish.

En el método prepareData, se crea una lista de datos de prueba que contiene información del estudiante. En el método principal, se crea el objeto ExcelExportService y se llama al método exportExcel para exportar el archivo de Excel. El archivo de Excel exportado se denomina estudiante.xlsx. Los estudiantes pueden modificar los datos y las rutas de los archivos según las necesidades reales para realizar su propia función de exportación.

3.5 Escritura e importación de interfaz de Excel

EasyExcel admite la importación de archivos de Excel. Con EasyExcel, puede leer fácilmente datos de archivos de Excel en objetos Java. EasyExcel proporciona una API enriquecida, que puede configurar la forma de leer Excel, la hoja a leer, el número de filas a leer, etc. Puede utilizar EasyExcel para leer varios tipos de datos, incluidos tipos básicos, colecciones, objetos personalizados, etc.

Al mismo tiempo, EasyExcel también admite la importación de grandes cantidades de datos, lo que puede manejar de manera eficiente la operación de importación de grandes lotes de datos. EasyExcel también proporciona un mecanismo de escucha a través del cual los estudiantes pueden procesar y verificar los datos leídos. En resumen, EasyExcel es una herramienta potente y fácil de usar para importar Excel.

A continuación se muestra un código de muestra que muestra cómo utilizar EasyExcel para importar la interfaz de Excel.

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.read.listener.ReadListener;
import com.alibaba.excel.read.metadata.ReadSheet;
import java.util.List;

public class ExcelImportService {
    
    

    public void importExcel(String filePath) {
    
    
        // 创建Excel读取监听器
        ReadListener<Student> listener = new ExcelReadListener();
        // 创建读取Sheet配置
        ReadSheet readSheet = EasyExcel.readSheet(0).registerReadListener(listener).build();
        // 执行读取操作
        EasyExcel.read(filePath, Student.class).build().read(readSheet);
        // 获取读取的数据
        List<Student> studentList = ((ExcelReadListener) listener).getStudentList();
        // 处理读取的数据
        processImportedData(studentList);
    }
    
    private void processImportedData(List<Student> studentList) {
    
    
        // 处理导入的数据
    }
    
    public static void main(String[] args) {
    
    
        ExcelImportService excelImportService = new ExcelImportService();
        excelImportService.importExcel("student.xlsx");
    }
}

En el código anterior, la clase ExcelImportService encapsula la interfaz para importar Excel. En el método importExcel, primero cree el oyente de lectura de Excel ExcelReadListener, que se utiliza para procesar los datos leídos. Luego cree una ReadSheet de configuración de ReadSheet y registre el oyente en la configuración de lectura a través del método RegisterReadListener. A continuación, utilice EasyExcel para realizar la operación de lectura y entregue los datos leídos al oyente para su procesamiento. Finalmente, los datos importados se procesan mediante el método `processImportedData.

En el método principal, se crea el objeto ExcelImportService y se llama al método importExcel para importar el archivo de Excel. El archivo Excel importado se llama estudiante.xlsx. Los estudiantes pueden modificar la ruta del archivo y la lógica de procesamiento de datos de acuerdo con las necesidades reales para realizar su propia función de importación.

Insertar descripción de la imagen aquí

Cuatro Resumen

Este artículo explica cómo integrar EasyExcel en el proyecto SpringBoot, realizar una importación y exportación rápida de Excel, analizar el proceso de implementación de la importación y exportación de Excel y proporcionar el código fuente relevante.

Supongo que te gusta

Origin blog.csdn.net/zhanggqianglovec/article/details/132106812
Recomendado
Clasificación