Xlsx结合File-Saver实现前端页面表格导出Excel为文件

Xlsx结合File-Saver实现前端页面表格导出Excel为文件系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章Python机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例

大家好,又见面了,我是你们的朋友全栈君。

前言:在我们的前端网页页面中如果遇到一些表格存储的数据性问题,我们可以将它们存储为excel形式,那么我们今天来看看该如何实现…



一、XLSX是什么?

XLSX:由SheetJS出品的js-xlsx是一款非常方便的只需要纯JS即可读取和导出excel的工具库,功能强大,支持格式众多,支持xls、xlsx、ods(一种OpenOffice专有表格文件格式)等十几种格式

1.npm下载

代码如下:

npm i xlsx

2.引入库

代码如下:

 import XLSX from "xlsx";

二、FileSaver是什么?

FileSaver:实现浏览器端生成并保存文件的 JavaScript 库 FileSaver.js

1.npm下载:

代码如下:

npm i file-saver

2.引入库:

代码如下:

import FileSaver from "file-saver";

三、结合使用

1.导入:

代码如下:

import FileSaver from "file-saver";
import XLSX from "xlsx";

2.HTML代码:

代码如下:

需要给要导出的表格加上专有标记(ID)

ps:本文采用的是element-ui的表格

<el-table ref="multipleTable" :data="taskData.slice((currentPage-1)*page,currentPage*page)" tooltip-effect="dark" style="width: 100%;overflow:auto;height: 50%;margin-left: 50px" @selection-change="handleSelectionChange" align="center" id="taskTable" >
            .....
</el-table>

3.JS代码:

代码如下:

 var that = this;
 //这只是显示提示信息,可容易忽略不计
 that.$message({ 
   
       type: 'success',
       message: `数据导出中...`
   });
   // 导出的内容只做解析,不进行格式转换
   let xlsxParam = { 
   raw: true};
   //#taskTable为我们表格的ID
   let wb = XLSX.utils.table_to_book(document.querySelector("#taskTable"), xlsxParam);
  //下面代码阐明了保存的类型为什么
   const wbout = XLSX.write(wb, { 
   
       bookType: "xlsx",
       bookSST: true,
       type: "array"
   });
   try { 
   
       FileSaver.saveAs(new Blob([wbout], { 
   type: "application/octet-stream"}), 'file-name.xlsx');
       //file-name为保存的文件的名称
   } catch (e) { 
   
       if (typeof console !== "undefined") console.log(e, wbout);
   }
   return wbout;

这样就可以实现简单的前端页面表格导出为excel格式的文件了,你可以将其封装在一个方法里面在需要实现导出功能的按钮上进行绑定即可。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154146.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Netty之ByteBuf

    Netty之ByteBuf一、功能原理ByteBuf是一个byte存放的缓冲区。ByteBuf通过两个位置的指针来协助缓冲区的读写操作,读操作使用readIndex,写操作使用writeIndex。+——————-+——————+——————+|discardablebytes|readablebytes

    2022年9月19日
    0
  • @MapperScan注解怎么用

    @MapperScan注解怎么用早点的时间是直接在Mapper类上面添加注解@Mapper,这种方式要求每一个mapper类都需要添加此注解,比较麻烦。现在通过使用@MapperScan可以指定要扫描的Mapper类的包的路径,比如:@SpringBootApplication@MapperScan("com.lz.water.monitor.mapper")//添加对mapper包扫描publicclassApplica…

    2022年6月4日
    36
  • outputstream转byte数组_byte数组写入文件

    outputstream转byte数组_byte数组写入文件将inputstream转化为数组byte[]

    2022年9月21日
    0
  • php nginx 负载均衡

    php nginx 负载均衡1:nginx服务器192.168.182.128:8081/代码服务器:192.168.182.129:81192.168.182.131:812:在nginx服务器配置nginx.confupstreamtomcatserver1{server192.168.182.129:81weight=3;server192.168.182.131:81;}server{…

    2022年6月18日
    22
  • Pycharm使用问题# Interpreter设置

    Pycharm使用问题# Interpreter设置

    2021年8月29日
    187
  • 文本分类算法之–贝叶斯文本分类算法[通俗易懂]

    文本分类算法之–贝叶斯文本分类算法[通俗易懂]文本分类过程例如文档:GoodgoodstudyDaydayup可以用一个文本特征向量来表示,x=(Good,good,study,Day,day,up)。在文本分类中,假设我们有一个文档d∈X,类别c又称为标签。我们把一堆打了标签的文档集合作为训练样本,∈X×C。例如:={BeijingjoinstheWorldTradeOrganization,C

    2022年6月1日
    31

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号