javascript导出csv文件(excel)的方法示例
这里贴出JavaScript导出csv文件(excel)的代码。
/** *导出excel *@param{Object}title标题列key-val *@param{Object}data值列key-val *@param{Object}fileName文件名称 */ functionJSONToExcelConvertor(title,data,fileName){ varCSV=''; varrow=""; for(vari=0;i上面的写法,如果excel中的数据太多,就会导致无法导出的结果,原因是浏览器对URL的长度有限制,因此要使用Blob对象和window.URL.createObjectURL()方法做一下改造。
window.URL.createObjectURL()方法可以直接生成blob:开头的链接,该链接产生于浏览器端,不会占用服务器资源。
/** *导出excel *@param{Object}title标题列key-val *@param{Object}data值列key-val *@param{Object}fileName文件名称 */ functionJSONToExcelConvertor(title,data,fileName){ varCSV=''; varrow=""; for(vari=0;i然而,虽然window.URL.createObjectURL()方法在IE10、IE11以及MicrosoftEdge中能生成的blob:链接,但是却不能把它加到一个节点上,也不能直接在浏览器地址栏打开访问,否则会得到【SCRIPT5:拒绝访问。】错误。甚至,IE9根本不支持调用window.URL.createObjectURL()方法创建BlobURLs。
MicrosoftInternetExplorer/MicrosoftEdge和高大上的GoogleChrome/MozillaFirefox对于window.URL.createObjectURL()方法创建Blob链接最直观的区别在于得到的blob:链接形式不一样,分别在微软浏览器和标准浏览器中运行newBlob()代码,会得到两种Blob链接形式,第一种为chrome和firefox生成的带有当前域名的标准blob:链接形式,第二种为MicrosoftIE和MicrosoftEdge生成的不带域名的blob:链接。那么我们就可以通过window.URL.createObjectURL(newBlob()).indexOf(location.host)<0表达式来检测是否是IE或早期生成ObjectURL不带域名的Edge,如果表达式返回true则是IE或Edge旧版本。
事实上,BlobURL不被支持是出于IE浏览器对安全性的考虑(IE浏览器真安全啊,牛逼),然后它自己提供了一套API用来创建或下载Blob文件:msSaveOrOpenBlob。
/** *导出excel *@param{Object}title标题列key-val *@param{Object}data值列key-val *@param{Object}fileName文件名称 */ functionJSONToExcelConvertor(title,data,fileName){ varCSV=''; varrow=""; for(vari=0;i因此就得出上面最终的代码。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。