前端提效 - js 批量导出 excel 为zip压缩包

本文为博客 VIP 文章,开通 VIP 后可阅读全文

开通 VIP

本篇文章主要介绍使用 exceljsfile-saverjszip实现下载包含多层级文件夹、多个 excel、每个 excel 支持多个 sheet 的 zip 压缩包。
上一篇文章:前端复杂表格导出excel,一键导出 Antd Table 看这篇就够了(附源码)详细介绍了如何实现解析 Antd Table、组装数据和调整表格的样式,感兴趣的可以先看看。
本篇将接着上一篇,重点讲方法的更高级抽象,和下载多层级文件夹的 zip 压缩包。
源码地址:https://github.com/cachecats/excel-export-demo

实现效果

最终下载的是 压缩包.zip,解压之后包含多个文件夹,每个文件夹下又可以无限嵌套子文件夹,excel 文件可以自由选择放到根目录下,或者子文件夹下。
实现效果如图:
image.png

使用方法

使用方式也很简单,经过高度封装后,只需按照方法参数的规则传入参数即可:

downloadFiles2ZipWithFolder({
   
   
      zipName: '压缩包',
      folders: [
        {
   
   
          folderName: '文件夹1',
          files: [
            {
   
   
              filename: 'test',
              sheets: [{
   
   
                sheetName: 'test',
                columns: columns,
                dataSource: list
              }]
            },
            {
   
   
              filename: 'test2',
              sheets: [{
   
   
                sheetName: 'test',
                columns: columns,
                dataSource: list
              }]
            },
          ]
        },
        {
   
   
          folderName: '文件夹2',
          files: [
            {
   
   
              filename: 'test',
              sheets: [{
   
   
                sheetName: 'test',
                columns: columns,
                dataSource: list
              }]
            },
            {
   
   
              filename: 'test2',
              sheets: [{
   
   
                sheetName: 'test',
                columns: columns,
                dataSource: list
              }]
            },
          ]
        },
        {
   
   
          folderName: '文件夹2/文件夹2-1',
          files: [
            {
   
   
              filename: 'test',
              sheets: [{
   
   
                sheetName: 'test',
                columns: columns,
                dataSource: list
              }]
            },
            {
   
   
              filename: 'test2',
              sheets: [{
   
   
                sheetName: 'test',
                columns: columns,
                dataSource: list
              }]
            },
          ]
        },
        {
   
   
          folderName: '文件夹2/文件夹2-1/文件夹2-1-1',
          files: [
            {
   
   
              filename: 'test',
              sheets: [{
   
   
                sheetName: 'test',
                columns: columns,
                dataSource: list
              }]
            },
            {
   
   
              filename: 'test2',
              sheets: [{
   
   
                sheetName: 'test',
                columns: columns,
                dataSource: list
              }]
            },
          ]
        },
        {
   
   
          folderName: '',
          files: [
            {
   
   
              filename: 'test',
              sheets: [{
   
   
                sheetName: 'test',
                columns: columns,
                dataSource: list
              },
                {
   
   
                  sheetName: 'test2',
                  columns: columns,
                  dataSource: list
                }
              ]
            },
            {
   
   
              filename: 'test2',
              sheets: [{
   
   
                sheetName: 'test',
                columns: columns,
                dataSource: list
              }]
            },
          ]
        }
      ]
    })

这里会封装三个方法,分别满足不同场景下的导出需求:

  • downloadExcel:导出普通的单文件 excel,预设样式,可包含多个 sheet。
  • downloadFiles2Zip:将多个 excel 文件导出到一个 zip 压缩包内,没有嵌套文件夹。
  • downloadFiles2Zi
基于BQ24610的24V电池充电板 转自我的博客 本文的主要目的在于传播基本的阅读datasheet的能力,以及PCB设计需要注意的基本问题。 本次需要设计的是24V动力锂电池充电电路。 原理图设计 参考官方参考电路 为了快速设计电路,自然是参考官方参考电路,选择Typical Application。 做细微的参数调整 由于我们的需求是给24V的电池充电,所以需要稍微修改一下原理图,接下来需... 阅读详情

相关推荐

直流有刷电机控制 - 认识电机(一)

电机控制学习

u011030644的博客 876

js导出带样式的excel.zip

js导出带样式的excel,简单易用,基于layui,欢迎下载,谢谢!

JavaScript解析Excel文件实战指南

Excel 文件是一种结构化的数据格式,其基本组成包括工作簿(Workbook)、工作表(Worksheet)和单元格(Cell)。理解这些概念是使用 JavaScript 处理 Excel 文件的前。工作簿(Workbook):一个 Excel 文件就是一个工作簿,它可能包含一个或多个工作表。工作表(Worksheet):每个工作簿中可以包含多个工作表,每个工作表是一个二维表格,由行和列组成。单元格(Cell)

weixin_35433448的博客 1756

【vue】前端实现批量导出excel打包ZIP

1,下载npm jszip 2,js文件需引入 Blob.js /* eslint-disable */ /* Blob.js * A Blob implementation. * 2014-05-27 * * By Eli Grey, http://eligrey.com * By Devin Samarin, https://github.com/eboyjr * License: X11/MIT * See LICENSE.md */ /*global self, unescap

一枚小前端 3191

Auto.js 压缩 解压 加密文件

log("加密="+加密()) log("解密="+解压()) function 加密() { try { let dir = '/sdcard/脚本/模块/'; // 2.加密压缩文件夹 let encryptedZipFile = '/sdcard/项目.zip'; $files.remove(encryptedZipFile); $zip.zipDir(dir, encryptedZipFile, {

qq_25226575的博客 1981

vue前端js上传压缩包excel文件,读取excel内容

一、应用背景是vue前端上传.zip文件,对zip解析分类。取出excel内容展示。

HanShao_的博客 1489

JS实现文件下载CSV/Excel/Zip文件

JS实现文件下载CSV/Excel/Zip文件,可在项目中新建utils/downloadFile.js,使用时引入即可;

W-Mo-Mo的博客 1029

导出下载多个Excel文件打包zip文件

导出下载单个Excel也许简单,但是有的时候也会用到下载多个excel打包zip文件的情况,最近遇到了,现在简单整理一下! 1、ftl文件 导出 <table id="annualPlanTable" class="table table-striped table-hover" data-sort-name="crea

张荣珍的专栏 4964

Java操作POI批量导出多个excle,打压缩包

1、前端js function exportRecord(){ var browseUrl=$("#browseUrl").val(); if(browseUrl == null || browseUrl == ""){ $.messager.show({ title : '示',

王萌萌 4334

vue前台导出zip文件_vue 导出Excelzip

1 安装依赖npm i jszip -S //安装zipnpm install -S file-saver xlsxnpm install-D script-loader2 再项目中创建文件夹 src 下创建(vendor)放入 两个文件里面放置两个文件Blob.js和Export2Excel.jsExport2Zip.js (zip)3. 导入 export2Excel,再build 文件...

weixin_39550937的博客 507

【Java + Vue 实现图片上传后 导出图片及Excel 压缩为zip压缩包

Java + Vue 实现图片上传后 导出图片及Excel 压缩为zip压缩包

欢迎来到快乐星球 509

前端导出zip压缩包

点击“导出”按钮, 需要一次导出多个Excel文件,为方便使用,将多个文件放入zip文件夹中进行下载

weixin_46883630的博客 801

Java实现vue+EasyExcel实现写excel,将文件夹压缩成zip导出

最近碰到个需要下载zip压缩包的需求,于是我在网上找了下别人写好的zip工具类。但找了好多篇博客,总是发现有bug。因此就自己来写了个工具类。 这个工具类的功能为: (1)可以压缩文件,也可以压缩文件夹 (5)代码中供了2个压缩文件的方法,一个的输入参数为文件夹路径,一个为文件列表,可根据实际需求选择方法。 (4)可以选择是否保留原来的目录结构,如果不保留,所有文件跑压缩...

飞奔的小土豆@1024 3637

前端导出excel表格,axios下载文件导出 (vue)

废话就不多说了,直接上代码,写完文章还得继续上班撸代码 首先安装好要用的插件,这里我使用的是 js-export-exceljszip两个库,一个用来处理表格导出一个用来做压缩,如果你不需要做压缩可以不用安装jszip npm i js-export-excel npm i jszip 接下来先封装几个工具函数,方便调用 关键在第三步的配置项,可以先看看第三步 文件导出 都是大佬,这段代码我就不多逼逼了,有些是为了方便项目中用,你要是看它不爽就盘它,嘿嘿 export function

前端码农 628

Export2Excel.js实现导出excel压缩包

首先在Export2Excel.js文件中引入:importJSZipfrom'jszip' 将Export2Excel.js文件最下方的代码 saveAs(new Blob([s2ab(wbout)], { type: "application/octet-stream" }), ` 改成如下代码即可 const zip = new JSZip() const zip_name = filename || 'file' const data = new Blob([s...

RubyLinT的博客 772

java excel压缩导出_java实现Excel压缩成Zip导出

1 概述在web项目中常见的一种场景就是将文件导出Excel,但是当需要导出多个Excel时,使用者将频繁操作,这样就严重降低了项目的友好交互性以及易用性,那么怎么才能优雅的解决这个问题呢?笔者今天分享将Excel导出压缩成zip包响应到浏览器端,希望对大家有所帮助。2 实现思路使用AEAI DP创建样例工程export_demo,创建测试数据表employee,使用DP预置的样例功能快速创...

weixin_30880565的博客 770

导出excel导出zip

【代码】导出excel导出zip

weixin_44838000的博客 142

前端根据接口返回文件导出excel、word、pdf、zip、N42、txt、json等各种类型的文件

新建一个.js文件,用来存放导出各种类型的方法。

weixin_45319893的博客 638

JAVA WEB导出Excel和PDF

关于JAVA WEB的导出 1、网页的导出不能直接使用ajax进行,因为ajax是网页异步进行的JS和XML,只能进行字符流的传输,而文件流需要的是字节流,需要在js中使用location.href = url来文件下载请求 2、前一条当中的url如果需要在请求下载的同时交参数,则需要进行一个url的拼接,但是这么有一个弊端:这个url会直接暴露在用户的浏览器中,如果需要隐藏这个参数则需要使...

weixin_43238731的博客 1161

C++大学教程(第九版)2016-07 保罗·戴特尔 (Paul Deitel)、 哈维·戴特尔 (Harvey Deitel)_cafbe(C++中文版)-附件资源

C++大学教程(第九版)2016-07 保罗·戴特尔 (Paul Deitel)、 哈维·戴特尔 (Harvey Deitel)_cafbe(C++中文版)-附件资源

上一篇: 100 行代码实现 Flutter 自定义 TabBar
下一篇: 前端复杂表格导出excel,一键导出 Antd Table 看这篇就够了(附源码)
solocoder222
博客等级 码龄8年 129粉丝 69原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值