怎么在JavaScript中使用filesave。js导出Excel文件

  介绍

这篇文章将为大家详细讲解有关怎么在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文件