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

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"); 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也需要修改,稍后再加。

  • 浏览量 2162
  • 收藏 0
  • 0

所有评论(0)