在网上参考了很多的使用js导出excel表格的案例,但是个人感觉都讲的不是特别好。我这边也自己实现了一个
实现步骤:

1、把你要是数据封装成数组(数组的话会更加直观一点)

2、把数组转换为字符串

3、创建一个a标签,然后利用a标签特性实现下载功能

直接上代码!

         function exportToExcel(){let columnList = [{"header": "详细地址\n","field": "address",},{"header": "地址派送方式\n","field": "addressDeliveryType",}]; //表头部分let bodyList = [{"address": "xxxxx,xxxxxxxxxxxxxx","addressDeliveryRemark": "该地址暂无网点派送","addressDeliveryType": "盲区","allDeliveryArea": "","city": "xxx","county": "xxx","message": "OK","noDeliveryArea": "","province": "xxx","siteName": "地址匹配出的网点为空,请核对地址","siteNameAddress": "","siteServicesTy": "","siteStatus": "","status": "1","town": "xxx","townDispatch": "xxxx","_id": 55,"_uid": 55},{"address": "海女,xxxxxxx,浙江省xxxxxxxxxxxxxxx","addressDeliveryRemark": "该地址暂无网点派送","addressDeliveryType": "盲区","allDeliveryArea": "","city": "xxxx","county": "xxx","message": "OK","noDeliveryArea": "","province": "xxx","siteName": "地址匹配出的网点为空,请核对地址","siteNameAddress": "","siteServicesTy": "","siteStatus": "","status": "1","town": "xxx","townDispatch": "xxxx","_id": 56,"_uid": 56}];//拿到的集合let excelList = [];for (var i = 0; i < columnList.length; i++) {// 一行一行数据分割开excelList.push(exportFormat(columnList[i].header)+",");}excelList.push('\n')for (var i = 0; i < bodyList.length; i++) {excelList.push(exportFormat(bodyList[i].address)+",")excelList.push(exportFormat(bodyList[i].addressDeliveryType)+",")excelList.push(exportFormat(bodyList[i].addressDeliveryRemark)+",")excelList.push(exportFormat(bodyList[i].siteName)+",")excelList.push(exportFormat(bodyList[i].siteNameAddress)+",")excelList.push(exportFormat(bodyList[i].province)+",")excelList.push(exportFormat(bodyList[i].city)+",")excelList.push(exportFormat(bodyList[i].county)+",")excelList.push(exportFormat(bodyList[i].town)+",")excelList.push(exportFormat(bodyList[i].townDispatch)+",")excelList.push("\n");}var merged = excelList .join("");//将上述得到的excel集合,转化为excel表格中的需要使用的字符串//## 导出操作// encodeURIComponent解决中文乱码const uri ="data:text/xlsx;charset=utf-8,\ufeff" + encodeURIComponent(merged);// 通过创建a标签实现let link = document.createElement("a");link.href = uri;link.download = '测试.xlsx';  //这里是最后下载下来的excel表格名称link.click();
}
// 怕数据中出现特殊字符和英文字符(会造成单元格分隔)的逗号所以这边过滤一下
function exportFormat(value){value=value.replace(/[\n]/, '');value=value.replace(/,/, ',');return value;}

好,上面代码的’/n’和’,’,’/n’是作用于在excel表中换行,’,‘是作用于在excel分隔单元格。这里我想吐个槽为什么其他人的博客都是’/t,’ 我自己试了一下/t并没有起到分隔单元格的作用,只有英文的逗号会起到分隔单元格的作用,中文的是不行的!
这里在记录一下自己在做这个导出时踩到的坑
1)因为一开始不知道英文字符的逗号会造成单元格分隔,然后自己的数据中还有这个英文的逗号所以导出的东西都是乱的,有个博客上写到**’\t’是用来分隔单元格用的,搞得我到后面找了很久才知道’,’**是用来分隔单元格的!
2)自己一开始没用join()去做把数组转换成字符串,用的toString()去做的转换字符串,因为toString()转换数组为字符串它会把数组中用于分隔的逗号也转换成字符串
所以导出来的东西就是乱的,在我一番测试下还是用了join()去转换字符串

纯js实现数据导出excel表格相关推荐

  1. ThinkPHP5.0之数据导出excel表格

    ThinkPHP5.0之数据导出excel表格 使用composer安装phpexcel扩展类库 composer require phpoffice/phpexcel 控制器类中导入扩展类 use ...

  2. excel两个表格数据对比_vue实现json数据导出Excel表格

    因为项目的需要, 需要从前端导出表格,今天一个坑踩了一个小时,特别分享给大家 Vue导出json数据到Excel表格 一,安装依赖(三个缺一不可) npm install file-saver --s ...

  3. 使用python将数据导出excel表格

      python可用于数据分析,有时候获得了数据需要导出以作其他作用.本文就介绍python导出excel表格的方法.   导出excel表格,python提供了两个库:xlwt,xlrd.本文只讨论 ...

  4. 上传文件、下载文件、数据导出excel表格整理模板

    上传文件 思路: 1.设置上传的路径,上传名 2.在这个路径path上新建名为filename的文件 file 3.判断该文件的父目录是否存在,若不存在就新建一个 4.用.transferTo方法将文 ...

  5. vue使用js-table2excel将数据导出Excel表格,含文字、图片类型, 设置表格样式/添加合并单元格

    最近项目遇到了一个需求,在后台将学生信息以Excel表格导出,学生信息包含姓名.联系电话.照片等信息,一般情况下信息导出只需要导出字符串类型,但是现在的导出内容包含了图片,于是百度看到了js-tabl ...

  6. matlab筛选表格数据导出,excel表格里怎么将筛选数据导出-Excel表格在进行筛选,我如何可以导出所有筛选出来......

    如何将EXCEL表格中筛选出来的数据一次性复制到另一... 使用数据透最方便下据为例: 步骤1:选择A1单元格,插入>>>数据透视表,再单击定"按钮,如下图 步骤2:勾选& ...

  7. 『解疑』前端通过json数据导出excel表格文件(支持多级表头、复杂表头)(json转excel)

    问题 如何友好的通过规范的json数据导出成excel文件. 解题 制定规范的json数据结构: ( 只要将现有的数据处理成以下格式即可导出 ) {headerList: [ // 多级表头(2选1即 ...

  8. js 将二进制流html导出excel,js 实现纯前端将数据导出excel

    使用table标签方式将json导出xls文件 导出 function tableToExcel(){ //要导出的json数据 const jsonData = [ { name:'路人甲', ph ...

  9. 数据导出Excel表格

    public String exportInfoFr(String path,String name,String startdate,String enddate,SysUser user){Lis ...

  10. vue实现将所表格选数据导出excel表格

    <el-button @click.stop="exportClick" type="primary"> 导出 </el-button> ...

最新文章

  1. 媲美Pandas?一文入门Python的Datatable操作
  2. dataframe 空值替换为0_缓解Pandas中DataFrame占用内存过高
  3. mysql按升序创建索引_Mysql中的降序索引底层实现
  4. java 新建 api 案列_Java利用webservice创建接口案例源码
  5. matlab神经网络 误差曲线,神经网络如何输出各层训练误差曲线?
  6. oracle hint firstrow,Dynamics AX 2009客户端配置文件启动路径问题
  7. Delphi中怎么结束线程(这个线程是定时执行的)(方案一)
  8. docker 外部连接_Docker容器网络通信的那些事儿
  9. vs2015注册密钥
  10. matlab相关性分析
  11. [无线]无线传输距离预估计算
  12. Windows系统操作指令
  13. js中怪异的this 指针
  14. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java高校学科竞赛管理系统eolh8
  15. 网络唤醒的原理原来是这样的,GET!
  16. Vue:el-dialog可拖拽
  17. 达梦数据库-SQL优化之HINT-平坦化处理
  18. 服务器单独运行jar包方法
  19. 电脑连上wifi显示网络正常 但是网页打不开
  20. java学习方法-浅谈软件开发的神速进步

热门文章

  1. Java的Socket编程实例
  2. JavaScript网页简单特效
  3. Android控件 - TextView、Button、EditText、CompoundButton、CheckBox简介
  4. SpringBoot+SQLSERVER2000问题一
  5. hge引擎配置登录器教程_HGEM2引擎登录器列表格式TXT
  6. 浏览器不支持attachEvent事件解决方案
  7. 小程序生态化,Hybrid App要崛起了?
  8. php表单美化,使用css美化html表单控件详细示例(表单美化)_HTML/Xhtml_网页制作
  9. 微型计算机技术试题,《微型计算机技术》试题库
  10. Johnson 算法