介绍
这篇文章将为大家详细讲解有关怎么在JavaScript中使用filesave。js导出Excel文件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
<强>限制一:不同浏览器对团对象有不同的限制强>
具体看看下面这个表格(出自filesave。js):
BrowserConstructs asFilenamesMax Blob SizeDependenciesFirefox 20 + BlobYes800 MiBNoneFirefox & lt;20个数据:URINon/aBlob。为AndroidBlobYes500 jsChromeBlobYes500 MiBNoneChrome MiBNoneEdgeBlobYes吗?NoneIE 10 + BlobYes600 MiBNoneOpera 15 + BlobYes500 MiBNoneOpera & lt;15个数据:URINon/aBlob。jsSafari 6.1 + * BlobNo ?NoneSafari & lt;6数据:URINon/aBlob。js<>强限制二:构建完团对象后才会转换成文件强>
这一点限制对小文件(几十kb)可能没什么影响,但对稍微大一点的文件影响就很大了。试想,用户要下载一个100 mb的文件,如果他点击了下载按钮之后没看到下载提示的话,他肯定会继续按,等他按了几次之后还没看到下载提示时,他就会抱怨我们的网站,然后离开了。
然而事实上下载的的确确发生了,只是要等到下载完文件之后才能构建团对象,再转化成文件,而且,用户再触发多几次下载就会造成一些资源上的浪费。
因此,如果是要下载大文件的话,还是推荐直接创建一个& lt; a>标签拉~
html也写好,写JavaScript动态创建也好,用自己喜欢的方式去创建就好了。
FileSaver.js
/*, FileSaver.js ,* A saveAs (), FileSaver 实现。 *,1.3.2 ,* 2016 - 06 - 16 18:25:19 ,* ,*许可:麻省理工学院 *大敌;阅读;https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md ,*//* global self *//* jslint 位:真的,,缩进:,4,laxbreak:,真的,,laxcomma:,真的,,smarttabs:,真的,,plusplus: true *//* ! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */var saveAs =, saveAs | |,(函数(视图),{ “才能use strict";//才能,IE & lt; 10, is explicitly 不受支持的 if 才能;(typeof view ===,“undefined", | |, typeof navigator !==,“undefined",,,,/MSIE \ [1 - 9]。/test (navigator.userAgent)), { ,,,返回; ,,} ,var ,,,,doc =view.document ,,,,//,only get URL when necessary 拷贝case Blob.js 没有# 39;t overridden it 然而 ,,,,,get_URL =,()函数,{ ,,,,,return view.URL | |, view.webkitURL | |,观点; ,,,} ,,,,,save_link =, doc.createElementNS (“http://www.w3.org/1999/xhtml",,“a") ,,,,,can_use_save_link =,“download" save_link拷贝 ,,,,,click =,函数(节点),{ ,,,,,var event =, new MouseEvent (“click"); ,,,,,node.dispatchEvent(事件); ,,,} ,,,,,is_safari =,构造函数/信息技术(view.HTMLElement), | |, view.safari ,,,,,is_chrome_ios =/CriOS \/\ [d] +/test (navigator.userAgent) ,,,,,throw_outside =,函数(特异),{ ,,,,,(view.setImmediate | |, view.setTimeout)(函数(),{ ,,,,,,,throw 交货; ,,,,,},,0); ,,,} ,,,,,force_saveable_type =,“应用程序/octet-stream" ,,,//,,Blob API is fundamentally broken as there is no “downloadfinished" event 用subscribe ,,,,,arbitrary_revoke_timeout =, 1000, *, 40,//女士拷贝 ,,,,,revoke =,函数(文件),{ ,,,,,var revoker =,()函数,{ ,,,,,,,if (typeof file ===,“string"), {,//file is an object URL ,,,,,,,,,get_URL () .revokeObjectURL(文件); ,,,,,,,},else {,//file is a 文件 ,,,,,,,,,file.remove (); ,,,,,,,} ,,,,,}; ,,,,,setTimeout (arbitrary_revoke_timeout撤销也); ,,,} ,,,,,dispatch =,函数(filesave, event_types,,事件),{ ,,,,,event_types =, [] .concat (event_types); ,,,,,var 小姐:=,event_types.length; ,,,,,while (我),{ null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null怎么在JavaScript中使用filesave。js导出Excel文件