本文主要是下载excel,上传可以参考原生js使用js-xlsx插件

html

<a href="" download="下载文件的名字.xlsx" id="downloadFile"></a>
<input type="button" value="下载" onclick="downloadExl(tableToJsonStr())" />

script

function downloadExl(json, type) {var tmpDown; //导出的二进制对象var tmpdata = json[0];json.unshift({});var keyMap = []; //获取keys//keyMap =Object.keys(json[0]);for (var k in tmpdata) {keyMap.push(k);json[0][k] = k;}var tmpdata = []; //用来保存转换好的jsonjson.map((v, i) => keyMap.map((k, j) => Object.assign({}, {v: v[k],position: (j > 25 ? getCharCol(j) : String.fromCharCode(65 + j)) + (i + 1)}))).reduce((prev, next) => prev.concat(next)).forEach((v, i) => tmpdata[v.position] = {v: v.v});var outputPos = Object.keys(tmpdata); //设置区域,比如表格从A1到D10var tmpWB = {SheetNames: ['mySheet'], //保存的表标题Sheets: {'mySheet': Object.assign({},tmpdata, //内容{'!ref': outputPos[0] + ':' + outputPos[outputPos.length - 1] //设置填充区域})}};tmpDown = new Blob([s2ab(XLSX.write(tmpWB, { bookType: (type == undefined ? 'xlsx' : type), bookSST: false, type: 'binary' } //这里的数据是用来定义导出的格式类型))], {type: ""}); //创建二进制对象写入转换好的字节流var href = URL.createObjectURL(tmpDown); //创建对象超链接document.getElementById("downloadFile").href = href; //绑定a标签document.getElementById("downloadFile").click(); //模拟点击实现下载setTimeout(function() { //延时释放URL.revokeObjectURL(tmpDown); //用URL.revokeObjectURL()来释放这个object URL}, 100);
}function s2ab(s) { //字符串转字符流var buf = new ArrayBuffer(s.length);var view = new Uint8Array(buf);for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;return buf;
}
// 将指定的自然数转换为26进制表示。映射关系:[0-25] -> [A-Z]。
function getCharCol(n) {let temCol = '',s = '',m = 0while (n > 0) {m = n % 26 + 1s = String.fromCharCode(m + 64) + sn = (n - m) / 26}return s
}function tableToJsonStr () {//根据实际情况通过js拼接json字符串var jsonStr = '[ ';for (var i = 0; i < $(".listOrder").length; i++) {for (var j = 0; j < $(".listOrder")[i].children.length; j+=2) {jsonStr += '{"roomNo":"'+ $(".listOrder")[i].children[j].innerText +'",';jsonStr += '"lockNo":"'+ $(".listOrder")[i].children[j+1].children[0].value +'"},';}}jsonStr = jsonStr.slice(0,-1) + ']';try {return JSON.parse(jsonStr);} catch (e) {console.error(e);}
}

方法downloadExl(json, type)中的json示例:

[{"姓名":"张三","性别":"男"},{"姓名":"李四","性别":"男"}]

生成表格

姓名 性别
张三
李四

js使用js-xlsx插件下载excel相关推荐

  1. vue使用xlsx插件下载excel文件

    1.安装xlsx插件 cnpm install xlsx 2.新建xlsx.js文件,添加以下代码,放在plugins或utils插件文件夹下 // 下载excel功能 import XLSX fro ...

  2. 使用file-saver和xlsx插件下载excel

    安装命令 npm install -S file-saver(生产依赖,则为-s)npm install -S xlsxnpm install -D script-loader (开发依赖,则为-d) ...

  3. python excel插件_django使用插件下载excel的方法

    本篇文章给大家带来的内容是关于django使用插件下载excel的方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 由于目前的资料多是使用pandas或xlwt库实现的.其实没有那 ...

  4. php下载.xlsx,php下载excel文件

    php下载指定路径的excel代码: $download_path = ROOT_PATH.'admin/download/'; $filename2 = "库存明细(含有效期).xls&q ...

  5. EXCEL插件-下载-Excel地图插件简介

    我们的目标是打造专业 稳定 易用的应用软件 1 软件概述 EXCEL地图插件 - 一款基于Excel表格进行地理数据挖掘.坐标转换.地图绘制.地图图表等操作的工具类应用软件.具有易用.高效.稳定的特点 ...

  6. sparklines插件_sparklines 插件下载-Excel迷你图工具(Sparklines 插件) 3.9.1 官方版 - 河东下载站...

    Excel迷你图工具Sparklines 插件是一款可以制作excel迷你图的应用工具,通过该软件,用户可以制作各种excel的图标小工具,主要用于评估指标走势的优劣.好坏与波动区间范围,能够帮助用户 ...

  7. 使用xlsx.full.min.js导出有复杂表头的excel(亲测有效)

    开篇 今天项目用到了导出table表格,但表头有点特殊,多个合并的单元格. 搜索了半天,发现有博主使用 xlsx.full.min.js 做过此类功能,使用的是vue+elementUI,特在该基础上 ...

  8. a标签下载文件,js/jq创建a标签导出Excel文件

    a标签下载文件,js/jq 创建a标签导出Excel文件 1.设置dom(html) <button type="button" class="layui-btn ...

  9. js使用Blob的方式实现excel表格的下载(流文件下载)

    js使用Blob的方式实现excel表格的下载(流文件下载) js前端下载工具 getToken 为了获取token, 不需要的可以去除 downLoadXlsx中的data, 是数据的搜索参数(根据 ...

最新文章

  1. SpringBoot——项目搭建、整合Mybatis、整合redis(集群)
  2. 68. Leetcode 669. 修剪二叉搜索树 (二叉搜索树-基本操作类)
  3. stateflow新建状态中的枚举类型
  4. 如何在 ASP.NET Core 中实现全局异常拦截
  5. python函数-函数进阶
  6. C++子对象和堆对象
  7. matlab fopen wt,matlab的fopen和fprintf
  8. [英中双语] Pragmatic Software Development Tips 务实的软件开发提示
  9. php数组用递归函数求和,如何用php递归函进行数字累加操作?php递归函数累加求和...
  10. Linux下安装Java运行环境
  11. 2016北航计算机学院研究生院,北京航空航天大学2016年计算机考研分数线_北京航空航天大学考研复试分数线...
  12. win10如何扩大c盘空间【系统天地】
  13. commit 和 push 的临界点
  14. python爬取相册_如何用python实现爬取微博相册所有图片 - 收获啦
  15. 微信发红包的测试用例功能点
  16. 【BZOJ4027】【HEOI2015】兔子与樱花 贪心
  17. 不懂设计的产品不是好开发
  18. ffmpeg实战教程(十三)iJKPlayer源码简析
  19. 高速版的股票数据源增加复权功能,股票量化分析工具QTYX-V2.3.3
  20. 蓝格赛中国启用Informatica PIM系统,加速多渠道战略和数字化转型

热门文章

  1. 7本Python必读的入门书籍
  2. 简单高效压缩图片,保持图片高质量的神仙网站
  3. stylegan3:alias-free generative adversarial networks
  4. 色环电阻识别工具简介
  5. postman一直转圈打不开
  6. 有n个人围成一圈,顺序排号,从第一个人开始报数(1-3报数),凡是报数为3的人退出圈子,问最后留下的人原来的编号是多少?
  7. 鬼画符门莲台争夺战(python)
  8. html 清除文字空白,互联网常识:如何去掉css字体的上下空白
  9. 背景知识对问题解决的重要性
  10. CSS布局之浮动和定位