js生成xlsx/xls格式文件并下载到本地
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格式文件并下载到本地相关推荐
- js实现封装MP4格式文件并下载
注:基于bilibili的FLV.js实现 flv.js的github地址:github.com/Bilibili/fl- MP4文件格式 综述 在MP4文件格式中,整个视频容器都是由多个box和子b ...
- 如何用Matlab批量读取Excel 表格 .csv .xlsx .xls格式文件并整合成一个.mat格式文件保存
一个文件夹有三百多多个.csv格式的表格,我需要读取所有的表格,提取每一个表格的第7列,然后将所有表格的第七列的数据依次排列整合在一个表格中. 下图为处理前的文件的一部分 下面是实现这些功能的Matl ...
- java使用jxl包读写excel表格文件,即xls格式文件
全栈工程师开发手册 (作者:栾鹏) java教程全解 java使用jxl包读写excel表格文件,即xls格式文件 本实例演示使用jxl包实现对excel文件的操作,下载 测试代码 public st ...
- linux 拷贝xlsx_在Linux上,将xlsx Excel格式文件转换为CSV
在这个简短的配置中,我将展示如何使用Gnumeric电子表格程序将xlsx Excel格式文件转换为CSV. Gnumeric是这项工作的最佳工具,因为它将节省大量时间.让我们从安装Gnumeric开 ...
- 微信小程序实现生成二维码功能并下载到本地
微信小程序实现生成二维码功能并下载到本地 背景 实现 备注 背景 有这样一个需求,后台返回了url地址,微信小程序将url地址转成二维码图片,展示在页面上,并且该二维码图片可下载到用户手机相册中 实现 ...
- 前端实现base64格式文件的下载
利用Blob对象进行文件的下载 例子(此例子是在vue中执行的,其他环境需注意方法的调用): base64格式文件 let docbase64 = 'data:application/octet-st ...
- Vue2.js:xlsx实现Excel文件的导入导出
需求: Vue2.js + ElementUI 项目,通过xlsx实现一个前端的 Excel 导入和导出功能 文档 https://www.npmjs.com/package/xlsx https:/ ...
- 用FME实现xls格式文件投影坐标(XY)转TXT格式文件的地理坐标(经纬度)
一.任务来源 在自然资源部门都知道有个国土调查云,里面有个云查询,输入的坐标只支持地理坐标(经纬度),但是日常我们使用基本都是投影坐标(XY).这个时候,就需要我们去做投影转换了,一般是在ArcGIS ...
- 在Tomcat中添加支持3GP/MP4格式文件的下载
近日在工作中遇到3gp和mp4格式的文件问题.我用Nokia3250下载史莱克的视频(3gp)格式的.下载完后只给我提示一个text:内容有avc2.0.10.1110这样的内容. 原来Tomcat并 ...
- qrcode.js使用js生成二维码(并下载)的实践
知识点 base64数据形式 Base64是一种用64个字符来表示任意二进制数据的方法. – 廖雪峰官方网站 Base64编码有哪些情景需求? – 知乎 案例场景 后台生成邀请链接,前端拿到链接之后处 ...
最新文章
- 在SQL Server中如何获得刚插入一条新记录的自动ID号
- leetcode算法题--视频拼接
- 【MM 模块】 Optimized Purchasing 优化采购 1
- webpack初学笔记 之 小案例篇demo1
- 上币至iamToken
- 前端学习(2613):action的方法
- [最短路-Floyd][数学]Luogu P1552 牛的旅行
- apulSoft apUnmask for mac(音频放大组件)
- 【只推荐一位】他自学成才,坐拥38w粉丝,技术第一大号!
- C++的string类
- opengl画三维点_[500行代码学懂OpenGL]之一画点
- 阿里云SDK实现短信发送
- android安装svn,Android StudioSVN安装和使用
- 华大MCU(五):HC32F460串口IAP升级boot部分
- 计算机操作系统概述---目标、作用、功能、特性和发展过程
- 让搜索引擎收录hexo博客 | hexo
- adb命令查看手机电量_adb获取电池信息以及电量消耗信息
- 远程教学,微信群里就能上课、培训
- 运行错误:view size is not compatible with input tensor‘s size and stride (at least
- 网页偶尔出现 No input file specified 提示