Easypoi realiza a exportação e importação de excel

Easypoi realiza a exportação e importação de excel

Eu já usei poi para importar e exportar antes, e ainda é muito problemático escrever.Embora o mesmo código possa ser colado e copiado, é um grande negócio, afinal.

Portanto, tente usar o easypoi para fazer a importação e exportação do excel. Fofocando menos e comece a trabalhar ...

Etapa 1: pacote de guia
  <!--easypoi需要导包的-->
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-base</artifactId>
            <version>3.2.0</version>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-web</artifactId>
            <version>3.2.0</version>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-annotation</artifactId>
            <version>3.2.0</version>
        </dependency>
O segundo passo é escrever a classe da entidade, importar e exportar anotações, a classe da entidade deve ser escrita sem desvio (ênfase)
Introdução ao atributo de anotação:

exportação nome geradora especificado o nome da coluna Excel
uma posição correspondente ao ORDERNUM atributo pode especificar derivado, onde a coluna de
largura à largura da célula
tipo disposta derivado tipo um texto, 2 é uma imagem de, 3 é uma função, 10 numeral de texto padrão
substituir: Vale a pena substituir o exemplo: replace = {"ID_1"} O valor do banco de dados é "1", ele será automaticamente substituído por "ID" ao exportar
Exemplo: @Excel (nome = "Tipo de certificado", substitua = {"ID_ 1 "}, orderNum =" 1 ")
/ **
* Exportar data dos dados para o formato aaaa-MM-dd
* mergeVertical define se as colunas devem ser mescladas verticalmente
* mergeRely define os pré-requisitos para mesclar colunas, ou seja: somente quando o índice for 2 colunas (Ou seja: coluna "gênero") foi
mesclada; quando o comprimento vertical dessa coluna for o mesmo, ela poderá ser mesclada verticalmente; se a
coluna * citada como 2 (ou seja: coluna "gênero") tiver dados verticais diferentes, esse é o caso Os dados verticais das colunas são os mesmos, portanto
* não serão mesclados
* /
@Excel (nome = "horário de entrada na escola", mergeVertical = true, mergeRely = {2}, formato = "aaaa-MM-dd", orderNum = "5", largura = 20)

package com.sinux.easypoi.entity;

import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author Admin
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class NewExcelOperateEntity {
/**
 * @Excel注解的一些常用属性
 * name:列名
 * orderNum:第几列
 * replace:值得替换 例:replace = {"身份证_1"} 数据库值为"1",导出时会自动被"身份证"代
 */
    @Excel(name="姓名",orderNum = "0")
    private String name;
    @Excel(name="证件类型",replace = {"身份证_1"},orderNum = "1")
    private String identifyType;
    @Excel(name = "证件号码", orderNum = "2")
    private String identifyNo;
    @Excel(name = "手机号1", orderNum = "3",mergeVertical = true)
    private String phoneA;
    @Excel(name = "手机号2", orderNum = "4",mergeVertical = true)
    private String phoneB;
    @Excel(name = "手机号3", orderNum = "5",mergeVertical = true)
    private String phoneC;
    @Excel(name = "固定电话", orderNum = "6",mergeVertical = true)
    private String telephone;
    @Excel(name = "电子邮箱", orderNum = "7",mergeVertical = true)
    private String email;
    @Excel(name = "身份证地址", orderNum = "8",mergeVertical = true)
    private String idcardAdress;
    @Excel(name = "户籍地址", orderNum = "9",mergeVertical = true)
    private String householdAddress;
    @Excel(name = "居住地址", orderNum = "10",mergeVertical = true)
    private String liveAddress;
    @Excel(name = "工作地址", orderNum = "11",mergeVertical = true)
    private String workAddress;
}
Etapa 3: Exportar
 @GetMapping("/export")
    public void exportExcel(HttpServletResponse response){
        List<NewExcelOperateEntity> list = new ArrayList<>();
        NewExcelOperateEntity newExcelOperateEntity = null;
        Random random = new Random();
        //造数据
        for(int i=0;i<10;i++){
            newExcelOperateEntity = new NewExcelOperateEntity("姓名"+i,
                    "1",
                    random.nextInt(3)+i+"",
                    random.nextInt(3)+i+"",
                    random.nextInt(3)+i+"",
                    random.nextInt(3)+i+"",
                    "固定电话"+i,
                    "电子邮箱"+i,
                    "身份证地址"+i,
                    "户籍地址"+i,
                    "居住地址"+i,
                    "工作地址"+i);
            list.add(newExcelOperateEntity);
        }
        ExportParams exportParams = new ExportParams();
        exportParams.setSheetName("I am sheetName");
        Workbook workbook = ExcelExportUtil.exportExcel(exportParams,NewExcelOperateEntity.class,list);
        try {
            response.setHeader("content-Type", "application/vnd.ms-excel");
            // 下载文件的默认名称
            response.setHeader("Content-Disposition", "attachment;filename=" +
                    URLEncoder.encode("用户数据表","UTF-8") + "**.xlsx**");
            workbook.write(response.getOutputStream());

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
Etapa 4: Importar
 @RequestMapping("/import")
    public boolean importExcel(MultipartFile file){
        ImportParams importParams = new ImportParams();
        List<NewExcelOperateEntity> list = new ArrayList<>();
        try {
            list = ExcelImportUtil.importExcel(file.getInputStream(),NewExcelOperateEntity.class,importParams);
            for(NewExcelOperateEntity s : list){
                System.out.println(s);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return true;
    }
Publicado 67 artigos originais · Gostei12 · Visitantes 10.000+

Acho que você gosta

Origin blog.csdn.net/m0_37635053/article/details/104999640
Recomendado
Clasificación