js生成xlsx/xls文件并下载到本地

/*************************************************************************************/
//导出excel相关函数
function sheet2blob(sheet, sheetName) {//将文件转换为二进制文件sheetName = sheetName || 'sheet1';var workbook = {SheetNames: [sheetName],Sheets: {}};workbook.Sheets[sheetName] = sheet;// 生成excel的配置项var wopts = {bookType: 'xlsx', // 要生成的文件类型bookSST: false, // 是否生成Shared String Table,官方解释是,如果开启生成速度会下降,但在低版本IOS设备上有更好的兼容性type: 'binary'};var wbout = XLSX.write(workbook, wopts);var blob = new Blob([s2ab(wbout)], {type:"application/octet-stream"});// 字符串转ArrayBufferfunction 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;}return blob;
}/*************************************************************************************/
function openDownloadXLSXDialog(url, saveName){//下载模板文件if(typeof url == 'object' && url instanceof Blob){url = URL.createObjectURL(url); // 创建blob地址}var aLink = document.createElement('a');aLink.href = url;aLink.download = saveName || ''; // HTML5新增的属性,指定保存文件名,可以不要后缀,注意,file:///模式下不会生效var event;if(window.MouseEvent) event = new MouseEvent('click');else{event = document.createEvent('MouseEvents');event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);}aLink.dispatchEvent(event);}
/*************************************************************************************/
function teaModel(){//下载监考老师xlsx文件模板var array = [['监考号','姓名','手机号','考场','考场号','签到','openid']];var sheet = XLSX.utils.aoa_to_sheet(array);var blob = sheet2blob(sheet, '监考老师');openDownloadXLSXDialog(blob, 'xxxxx-监考老师.xlsx');
}
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title style="margin-left: 800px;">考试 管 理 系 统</title>
<script type="text/javascript" src="./js/xlsx.mini.js"></script>
</head>
<body><input id="btn" type="button" onclick="teaModel()" disabled value="下载文件"/>
</body>
</html>

运行结果截图:

js生成xlsx/xls格式文件并下载到本地相关推荐

  1. js实现封装MP4格式文件并下载

    注:基于bilibili的FLV.js实现 flv.js的github地址:github.com/Bilibili/fl- MP4文件格式 综述 在MP4文件格式中,整个视频容器都是由多个box和子b ...

  2. 如何用Matlab批量读取Excel 表格 .csv .xlsx .xls格式文件并整合成一个.mat格式文件保存

    一个文件夹有三百多多个.csv格式的表格,我需要读取所有的表格,提取每一个表格的第7列,然后将所有表格的第七列的数据依次排列整合在一个表格中. 下图为处理前的文件的一部分 下面是实现这些功能的Matl ...

  3. java使用jxl包读写excel表格文件,即xls格式文件

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java使用jxl包读写excel表格文件,即xls格式文件 本实例演示使用jxl包实现对excel文件的操作,下载 测试代码 public st ...

  4. linux 拷贝xlsx_在Linux上,将xlsx Excel格式文件转换为CSV

    在这个简短的配置中,我将展示如何使用Gnumeric电子表格程序将xlsx Excel格式文件转换为CSV. Gnumeric是这项工作的最佳工具,因为它将节省大量时间.让我们从安装Gnumeric开 ...

  5. 微信小程序实现生成二维码功能并下载到本地

    微信小程序实现生成二维码功能并下载到本地 背景 实现 备注 背景 有这样一个需求,后台返回了url地址,微信小程序将url地址转成二维码图片,展示在页面上,并且该二维码图片可下载到用户手机相册中 实现 ...

  6. 前端实现base64格式文件的下载

    利用Blob对象进行文件的下载 例子(此例子是在vue中执行的,其他环境需注意方法的调用): base64格式文件 let docbase64 = 'data:application/octet-st ...

  7. Vue2.js:xlsx实现Excel文件的导入导出

    需求: Vue2.js + ElementUI 项目,通过xlsx实现一个前端的 Excel 导入和导出功能 文档 https://www.npmjs.com/package/xlsx https:/ ...

  8. 用FME实现xls格式文件投影坐标(XY)转TXT格式文件的地理坐标(经纬度)

    一.任务来源 在自然资源部门都知道有个国土调查云,里面有个云查询,输入的坐标只支持地理坐标(经纬度),但是日常我们使用基本都是投影坐标(XY).这个时候,就需要我们去做投影转换了,一般是在ArcGIS ...

  9. 在Tomcat中添加支持3GP/MP4格式文件的下载

    近日在工作中遇到3gp和mp4格式的文件问题.我用Nokia3250下载史莱克的视频(3gp)格式的.下载完后只给我提示一个text:内容有avc2.0.10.1110这样的内容. 原来Tomcat并 ...

  10. qrcode.js使用js生成二维码(并下载)的实践

    知识点 base64数据形式 Base64是一种用64个字符来表示任意二进制数据的方法. – 廖雪峰官方网站 Base64编码有哪些情景需求? – 知乎 案例场景 后台生成邀请链接,前端拿到链接之后处 ...

最新文章

  1. 在SQL Server中如何获得刚插入一条新记录的自动ID号
  2. leetcode算法题--视频拼接
  3. 【MM 模块】 Optimized Purchasing 优化采购 1
  4. webpack初学笔记 之 小案例篇demo1
  5. 上币至iamToken
  6. 前端学习(2613):action的方法
  7. [最短路-Floyd][数学]Luogu P1552 牛的旅行
  8. apulSoft apUnmask for mac(音频放大组件)
  9. 【只推荐一位】他自学成才,坐拥38w粉丝,技术第一大号!
  10. C++的string类
  11. opengl画三维点_[500行代码学懂OpenGL]之一画点
  12. 阿里云SDK实现短信发送
  13. android安装svn,Android StudioSVN安装和使用
  14. 华大MCU(五):HC32F460串口IAP升级boot部分
  15. 计算机操作系统概述---目标、作用、功能、特性和发展过程
  16. 让搜索引擎收录hexo博客 | hexo
  17. adb命令查看手机电量_adb获取电池信息以及电量消耗信息
  18. 远程教学,微信群里就能上课、培训
  19. 运行错误:view size is not compatible with input tensor‘s size and stride (at least
  20. 网页偶尔出现 No input file specified 提示

热门文章

  1. Maven引入数据库JDBC驱动
  2. HCIP-RS-H12-221题库以及解析(部分)
  3. 拼音字母搜索匹配汉字
  4. 分页显示java_java分页实现 怎样用java实现分页显示?
  5. 荣耀盒子显示服务器繁忙错误码7,【沙发管家】华为荣耀盒子的三种解决方式...
  6. pdf阅读,保存上次阅读位置
  7. HIPO图、IPO图、H图的关系
  8. Python 实例教程100例
  9. STM32-CAN通信协议
  10. 微信小程序订阅消息 微信公众号模板消息