js使用js-xlsx插件下载excel
本文主要是下载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相关推荐
- vue使用xlsx插件下载excel文件
1.安装xlsx插件 cnpm install xlsx 2.新建xlsx.js文件,添加以下代码,放在plugins或utils插件文件夹下 // 下载excel功能 import XLSX fro ...
- 使用file-saver和xlsx插件下载excel
安装命令 npm install -S file-saver(生产依赖,则为-s)npm install -S xlsxnpm install -D script-loader (开发依赖,则为-d) ...
- python excel插件_django使用插件下载excel的方法
本篇文章给大家带来的内容是关于django使用插件下载excel的方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 由于目前的资料多是使用pandas或xlwt库实现的.其实没有那 ...
- php下载.xlsx,php下载excel文件
php下载指定路径的excel代码: $download_path = ROOT_PATH.'admin/download/'; $filename2 = "库存明细(含有效期).xls&q ...
- EXCEL插件-下载-Excel地图插件简介
我们的目标是打造专业 稳定 易用的应用软件 1 软件概述 EXCEL地图插件 - 一款基于Excel表格进行地理数据挖掘.坐标转换.地图绘制.地图图表等操作的工具类应用软件.具有易用.高效.稳定的特点 ...
- sparklines插件_sparklines 插件下载-Excel迷你图工具(Sparklines 插件) 3.9.1 官方版 - 河东下载站...
Excel迷你图工具Sparklines 插件是一款可以制作excel迷你图的应用工具,通过该软件,用户可以制作各种excel的图标小工具,主要用于评估指标走势的优劣.好坏与波动区间范围,能够帮助用户 ...
- 使用xlsx.full.min.js导出有复杂表头的excel(亲测有效)
开篇 今天项目用到了导出table表格,但表头有点特殊,多个合并的单元格. 搜索了半天,发现有博主使用 xlsx.full.min.js 做过此类功能,使用的是vue+elementUI,特在该基础上 ...
- a标签下载文件,js/jq创建a标签导出Excel文件
a标签下载文件,js/jq 创建a标签导出Excel文件 1.设置dom(html) <button type="button" class="layui-btn ...
- js使用Blob的方式实现excel表格的下载(流文件下载)
js使用Blob的方式实现excel表格的下载(流文件下载) js前端下载工具 getToken 为了获取token, 不需要的可以去除 downLoadXlsx中的data, 是数据的搜索参数(根据 ...
最新文章
- SpringBoot——项目搭建、整合Mybatis、整合redis(集群)
- 68. Leetcode 669. 修剪二叉搜索树 (二叉搜索树-基本操作类)
- stateflow新建状态中的枚举类型
- 如何在 ASP.NET Core 中实现全局异常拦截
- python函数-函数进阶
- C++子对象和堆对象
- matlab fopen wt,matlab的fopen和fprintf
- [英中双语] Pragmatic Software Development Tips 务实的软件开发提示
- php数组用递归函数求和,如何用php递归函进行数字累加操作?php递归函数累加求和...
- Linux下安装Java运行环境
- 2016北航计算机学院研究生院,北京航空航天大学2016年计算机考研分数线_北京航空航天大学考研复试分数线...
- win10如何扩大c盘空间【系统天地】
- commit 和 push 的临界点
- python爬取相册_如何用python实现爬取微博相册所有图片 - 收获啦
- 微信发红包的测试用例功能点
- 【BZOJ4027】【HEOI2015】兔子与樱花 贪心
- 不懂设计的产品不是好开发
- ffmpeg实战教程(十三)iJKPlayer源码简析
- 高速版的股票数据源增加复权功能,股票量化分析工具QTYX-V2.3.3
- 蓝格赛中国启用Informatica PIM系统,加速多渠道战略和数字化转型