Skip to content

📊 Excel导出工具

📖 功能介绍

TIP

Excel导出工具提供了一种简单高效的方式来导出数据到Excel文件。通过注解方式实现,简化了开发流程,提高了开发效率。

🚀 快速开始

1. 添加依赖

xml
<dependency>
    <groupId>com.wueasy.cloud</groupId>
    <artifactId>wueasy-cloud-web-excel</artifactId>
    <version>${latest.version}</version>
</dependency>

2. 定义导出实体类

java
@Data
public class ExportExcelVo {
    @ExcelProperty(value = "字符串字段", index = 0)
    private String string;
    
    @ExcelProperty(value = "日期字段", index = 1)
    private Date date;
    
    @ExcelProperty(value = "数值字段", index = 3)
    private Double doubleData;  // index = 2 的列将保持为空
}

⚙️ 配置说明

@ExportExcel 注解参数

参数说明必填示例
fileName导出文件名称"用户数据"
head导出数据对象类UserExcelVo.class

@ExcelProperty 注解参数

参数说明必填示例
value列标题"用户名"
index列序号0

💡 使用示例

1. 普通列表导出

java
@RestController
@RequestMapping("/export")
public class ExportController {
    
    @GetMapping("/list")
    @ExportExcel(fileName = "用户列表", head = ExportExcelVo.class)
    public ResultVo<List<ExportExcelVo>> exportList() {
        // 准备导出数据
        List<ExportExcelVo> list = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            ExportExcelVo vo = new ExportExcelVo();
            vo.setString("用户_" + i);
            vo.setDate(new Date());
            vo.setDoubleData(new Random().nextDouble());
            list.add(vo);
        }
        return ResultVo.ok(list);
    }
}

2. 分页数据导出

java
@GetMapping("/page")
@ExportExcel(fileName = "分页数据", head = ExportExcelVo.class)
public ResultVo<PageVo<ExportExcelVo>> exportPage(BasePageDto dto) {
    // 准备分页数据
    List<ExportExcelVo> list = new ArrayList<>();
    for (int i = 0; i < dto.getPageSize(); i++) {
        ExportExcelVo vo = new ExportExcelVo();
        vo.setString("数据_" + i);
        vo.setDate(new Date());
        vo.setDoubleData(new Random().nextDouble());
        list.add(vo);
    }
    
    // 构建分页对象
    PageVo<ExportExcelVo> page = new PageVo<>();
    page.setList(list);
    page.setPageNum(dto.getPageNum());
    page.setPageSize(dto.getPageSize());
    page.setPages(6);
    
    return ResultVo.ok(page);
}

📝 注意事项

  1. 数据对象要求

    • 分页参数必须继承 BasePageDto
    • 列表数据返回格式:ResultVo<List<T>>
    • 分页数据返回格式:ResultVo<PageVo<T>>
  2. 性能建议

    • 大数据量建议使用分页导出
    • 合理设置每页数据量
    • 添加导出进度提示
  3. 格式说明

    • 日期类型会自动格式化
    • 数值类型保持原格式
    • 支持列的间隔设置

🔍 常见问题

  1. 导出失败排查

    • 检查注解参数配置
    • 验证返回数据格式
    • 确认文件名编码
  2. 格式异常处理

    • 检查数据类型匹配
    • 验证日期格式配置
    • 确认列索引设置

📚 参考资源