若依VUE前端分离版 集成 easyExcel增强
问题描述:采用官方教程,整合不成功,需要修改一下。
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也需要修改,稍后再加。
所有评论(0)