问题描述:采用官方教程,整合不成功,需要修改一下。

1.ruoyi/comon,pom中添加依赖 ,用最新版,官方帮助是2.2.6版本,已停止维护

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

2.修改domain注解,改成 @ExcelProperty(value=""),如下

@ExcelIgnoreUnannotated
@ColumnWidth(16)
@HeadRowHeight(14)
@HeadFontStyle(fontHeightInPoints = 11)
@TableName(value = "brebreed")
public class BreBreed extends BaseEntity
{
    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    /**  */
    @TableId(type = IdType.AUTO)
    @ExcelProperty(value="ID")
    private Long id;

    /** 名称 */
    @ExcelProperty(value = "名称")
    private String name;


。。。。。。。。。。。。。。。。。。。

3.ExcelUtil.java,添加两个方法,官方的importEasyExcel可以直接用,exportEasyExcel需要改一下,传参加入response。否则导出文件为0字节,打开提示“格式或扩展名无效”,这是重点。

 /**
     * 对excel表单默认第一个索引名转换成list(EasyExcel)
     *
     * @param is 输入流
     * @return 转换后集合
     */
    public List<T> importEasyExcel(InputStream is) throws Exception
    {
        return EasyExcel.read(is).head(clazz).sheet().doReadSync();
    }

    /**
     * 对list数据源将其里面的数据导入到excel表单(EasyExcel)
     *
     * @param list 导出数据集合
     * @param sheetName 工作表的名称
     * @return 结果
     */
    public AjaxResult exportEasyExcel(HttpServletResponse response,List<T> list, String sheetName)
    {
        String filename = encodingFilename(sheetName);
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
         try
        {
            EasyExcel.write(response.getOutputStream(), clazz).sheet(sheetName).doWrite(list);

        }
        catch (Exception e)
        {
            log.error("导出Excel异常{}", e.getMessage());
            throw new UtilException("导出Excel失败,请联系网站管理员!");
        }
        return AjaxResult.success(filename);
    }

4.改写controoler,

导入:
util.importExcel 改成 util.importEasyExcel
 

 List<BreBreed> breBreedList = util.importEasyExcel(file.getInputStream());

导出:
util.exportExcel 改成 util.exportEasyExcel
把response传进去。

xcelUtil<BreBreed> util = new ExcelUtil<BreBreed>(BreBreed.class);
util.exportEasyExcel(response,list, "种鸡-品种数据");

5.convert也需要修改,稍后再加。

Logo

快速构建 Web 应用程序

更多推荐