当前位置: 首页 > news >正文

Java_EasyExcel_导入_导出Java-js

easyExcel导入

  • 从easyexcel官网中拷贝过来,使用到的,这是使用监听器的方法。
EasyExcel.read(file.getInputStream(), BaseStoreDataExcelVo.class, new ReadListener<BaseStoreDataExcelVo>() {/*** 单次缓存的数据量*/public static final int BATCH_COUNT = 100;/***临时存储*/private List<BaseStoreDataExcelVo> cachedDataList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);@Overridepublic void invoke(BaseStoreDataExcelVo data, AnalysisContext analysisContext) {cachedDataList.add(data);if (cachedDataList.size() >= BATCH_COUNT) {saveData();// 存储完成清理 listcachedDataList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);}}@Overridepublic void doAfterAllAnalysed(AnalysisContext analysisContext) {saveData();}/*** 存储数据库*/private void saveData() {saveAndUpdate(cachedDataList, result);}
}).headRowNumber(3).sheet().doRead();
  • 其中headRowNumber是指表头为第三行,数据从第四行开始读取

使用easyExcel导出数据

  • 封装了一个导出的工具类,也是使用easyexcel
/*** 方法描述: 浏览器点击导出后导出文件** @param response 响应* @param list  导出数据集合* @param fileName 文件名 不含后缀* @param clazz 导出数据的数据类型* @return void*/public static void exportExcel(HttpServletResponse response, List<?> list,String fileName, Class<?> clazz) throws IOException {if (CollectionUtils.isEmpty(list)) {throw new RuntimeException();}if (StringUtils.isEmpty(fileName)) {fileName = new Date().toString();}String sheetName = fileName;// 使用swagger 会有问题,请直接用浏览器或者用postmantry {response.setContentType("application/vnd.ms-excel");response.setCharacterEncoding("utf-8");//防止中文乱码fileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20");response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");//表头字体颜色map 1为user中索引位置Map<Integer,Short> colorMap=new HashMap<>();
//            colorMap.put(1, IndexedColors.BLUE.index);ExcelCellWidthStyleStrategy widthStyleStrategy = new ExcelCellWidthStyleStrategy();// 这里需要设置不关闭流EasyExcel.write(response.getOutputStream(), clazz).registerWriteHandler(widthStyleStrategy).registerWriteHandler(new XCellStyleUtils(colorMap)).autoCloseStream(Boolean.FALSE).sheet(sheetName).doWrite(list);} catch (Exception e) {}}
  • 控制层使用
    @GetMapping("/downloadStoreSelect")@ApiOperation("数据下载")public void downloadStoreSelect(HttpServletResponse response) {Page<BaseStoreData> baseStoreDataPage = storeDataService.selectPage(null);try {EasyExcelUtils.exportExcel(response, changeData(baseStoreDataPage.getRecords()), "库存.xlsx", BaseStoreDataExcelVo.class);} catch (IOException e) {throw new RuntimeException(e);}}

使用easyExcel下载对应前端代码

  downloadStoreSelect().then(response => {const url = window.URL.createObjectURL(new Blob([response.data]));const link = document.createElement('a');link.href = url;link.setAttribute('download', 'export.xlsx'); // 下载文件名document.body.appendChild(link);link.click();})
http://www.lryc.cn/news/258636.html

相关文章:

  • 循环神经网络-RNN记忆能力实验 [HBU]
  • P1044 [NOIP2003 普及组] 栈——卡特兰数
  • 9:00面试,9:06就出来了,问的问题有点变态。。。
  • ets:tab2list的不足之处与替代方法,以及gen_server中使用ets的优缺点
  • 软件测试之压力测试详解
  • SpringBoot之请求的详细解析
  • mac 环境下 goframe安装GF开发工具 gf-cli(安装包方式安装)
  • Navicat 技术指引 | 适用于 GaussDB 分布式的数据迁移工具
  • 【TiDB理论知识10】TiDB6.0新特性
  • MySQL笔记-第15章_存储过程与函数
  • 12月12日作业
  • 基于Python+WaveNet+MFCC+Tensorflow智能方言分类—深度学习算法应用(含全部工程源码)(二)
  • ​secrets --- 生成管理密码的安全随机数​
  • 宇视科技视频监控 main-cgi 文件信息泄露漏洞
  • 【数学建模】《实战数学建模:例题与讲解》第十一讲-因子分析、聚类与主成分(含Matlab代码)
  • Python查找列表中不重复的数字
  • 用docker创建jmeter容器,如何实现性能测试?
  • pytest-fixtured自动化测试详解
  • 计算机网络:应用层(一)
  • mybatis的快速入门以及spring boot整合mybatis(二)
  • lua基本语法使用
  • Git远程操作
  • 链表基础知识(一、单链表)
  • mysql的ON DELETE CASCADE 和ON DELETE RESTRICT区别
  • 如何快速将图片转为excel?
  • 元编程(Metaprogramming)
  • IEEE Transactions on Industrial Electronics工业电子TIE论文投稿须知
  • Linux--操作系统
  • HarmonyOS—实现UserDataAbility
  • Java实现插入排序及其动图演示