easyexcel 导出一张表的数据

导入easyexcel依赖

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

 实体类:

package com.zhang.entity;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.metadata.BaseRowModel;
import com.baomidou.mybatisplus.annotation.*;

import java.io.Serializable;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import jdk.nashorn.internal.ir.annotations.Ignore;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.apache.poi.ss.usermodel.CellStyle;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;


/**
 * @author Ryan
 * @since 2022-01-09
 */
@Data
@ColumnWidth(25)
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("animal")
@ApiModel(value="Animal对象", description="")
public class Animal implements Serializable {

    private static final long serialVersionUID=1L;

    @ExcelIgnore
    @ApiModelProperty(value = "主键id")
    @TableId(value = "id", type = IdType.UUID)
    private String id;

    @ExcelProperty(value = "姓名",index = 0)
    @Pattern(regexp = "^[0-9]*$",message = "只能输入1-9的数字")
    @NotBlank(message = "name不能为空")
    @ApiModelProperty(value = "名称")
    private String name;



    @ExcelProperty(value = "年龄",index = 2)
    @NotNull(message = "年龄不能为空")
    @ApiModelProperty(value = "年龄")
    private Integer age;

    @TableLogic
    @ExcelIgnore
    @ApiModelProperty(value = "删除状态(0-正常,1-已删除)")
    private Integer delFlag;

    @ExcelProperty(value = "爱好",index = 1)
    @ApiModelProperty(value = "爱好")
    private String hobby;

    @ExcelProperty(value = "创建时间",index = 3)
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;


    @ExcelProperty(value = "更新时间",index = 4)
    @TableField(fill = FieldFill.UPDATE)
    private Date updateTime;



}

 controller方法:

    /**
     * 导出信息到Excel
     */
    @GetMapping(value = "/exportFile")
    public Result<?> file() {
        ExcelWriter excelWriter = null;
        //文件名
        String fileName="test.xlsx";
        List<Animal> list = animalService.list();
        try {
            // 定义一个全局的URL,作为文件的输出路径
            excelWriter = EasyExcel.write(URL+fileName, Animal.class).build();
            WriteSheet writeSheet = EasyExcel.writerSheet("模板").build();
            excelWriter.write(list, writeSheet);
        } finally {
            // 千万别忘记finish 会帮忙关闭流
            if (excelWriter != null) {
                excelWriter.finish();
            }
        }
        return Result.OK();
    }

数据顺利导出~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
easyexcel导出关联数据可以通过以下步骤实现: 1. 首先,你可以使用easyexcel的`SheetWriteHandler`接口来处理头的合并单元格问题。你可以自定义一个实现了`SheetWriteHandler`接口的类,比如`MulHeaderHandler`,在其中通过`addMergedRegion`方法来合并单元格。你可以参考引用\[3\]中的代码示例。 2. 如果你想锁定工作簿,可以使用`LockSheetWriteHandler`类来实现。在该类中,你可以通过`protectSheet`方法设置保护密码,并通过`lockSelectLockedCells`方法锁定单元格不可选中。你可以参考引用\[2\]中的代码示例。 3. 在导出数据时,你可以使用easyexcel的`ExcelWriter`类来创建工作簿和工作,并使用`write`方法将数据写入工作。你可以参考easyexcel的官方文档来了解更多关于导出数据的用法和示例。 综上所述,你可以通过自定义`SheetWriteHandler`类来处理头的合并单元格问题,使用`LockSheetWriteHandler`类来锁定工作簿,然后使用`ExcelWriter`类来导出关联数据。希望对你有帮助! #### 引用[.reference_title] - *1* *3* [Easyexcel 动态导出多行头-使用cellRange](https://blog.csdn.net/qq_35461948/article/details/116658610)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [基于EasyExcel锁定指定列导出数据到excel](https://blog.csdn.net/qq_44981526/article/details/128103978)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值