Utilice el marco easyexcel para escribir formatos personalizados para sobresalir en java

    Los ejemplos generales de Excel consisten en escribir datos de lista en Excel, con un encabezado en el formato y el contenido se completa utilizando una colección de Lista. La demanda que encontré hoy es un poco diferente, también hay que escribirla en Excel, pero el contenido al principio no es una lista, sino una parte similar a un resumen, seguida de una tabla. La estructura general es la siguiente:

    

 

    Para este requisito, no hay forma de utilizar operaciones comunes de Excel. La solución es utilizar una plantilla para completarlo. Necesitamos crear un archivo de plantilla de Excel y usar marcadores de posición para las partes modificadas.

    Como se muestra a continuación, creamos un archivo de plantilla:

    En la plantilla, la parte frontal se puede completar con datos del mapa, por lo que el marcador de posición es {checkTime}. La siguiente parte de la lista de bucles se completa con {.name}, {.result}, {.desc}.

    Código anterior:

    pom.xml

<dependency>
	<groupId>org.projectlombok</groupId>
	<artifactId>lombok</artifactId>
</dependency>
<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>easyexcel-core</artifactId>
	<version>3.2.1</version>
</dependency>

    Listar clase de entidad:


import lombok.AllArgsConstructor;
import lombok.Data;

@Data
@AllArgsConstructor
public class CheckRecord {
    private String name;
    private String result;
    private String desc;
}

    Clase de prueba:

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

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


public class RecordExportTest {

    private static final String RECORD_TEMPLATE = "conf/record-template.xlsx";

    public static void main(String[] args) {
        String filePath = "e:\\record-" + System.currentTimeMillis() + ".xlsx";
        Map<String, Object> summary = new HashMap<>();
        summary.put("checkTime", "2023-04-18");
        summary.put("checkResult", "success");
        summary.put("versionInfo", "v1.0.0");
        List<CheckRecord> list = new ArrayList<>();
        list.add(new CheckRecord("disk status", "success", "磁盘状态"));
        list.add(new CheckRecord("network status", "success", "网络状态"));
        boolean isOk = saveData(filePath, summary, list);
        System.out.println("write excel : " + isOk);
    }

    private static boolean saveData(String filePath, Map<String, Object> summary, List<CheckRecord> list) {
        try (ExcelWriter excelWriter = EasyExcel.write(filePath).withTemplate(RECORD_TEMPLATE).build()) {
            WriteSheet writeSheet = EasyExcel.writerSheet().build();
            FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build();
            excelWriter.fill(list, fillConfig, writeSheet);
            excelWriter.fill(summary, writeSheet);
            excelWriter.finish();
        }
        return true;
    }
}

    Coloque el archivo record-template.xlsx preparado anteriormente en el directorio de configuración del proyecto de acuerdo con los requisitos del código y luego ejecute el ejemplo. El archivo de Excel generado es el siguiente:

 

 

    Con este tipo de relleno de plantilla, nuestro Excel puede volverse más complejo. 

Supongo que te gusta

Origin blog.csdn.net/feinifi/article/details/130231051
Recomendado
Clasificación