【element 】使用xlsx、FileSaver实现导出,CDN引入,FileSaver.saveAs is not a function.saveAs is not a function

这篇具有很好参考价值的文章主要介绍了【element 】使用xlsx、FileSaver实现导出,CDN引入,FileSaver.saveAs is not a function.saveAs is not a function。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

系统前端采用element ui,现在需要实现一个导出的功能,各种搜索找到XLsx、FileSaver.

CDN方式引入:(网上基本很少CDN引入)


    <script src="//cdn.bootcdn.net/ajax/libs/xlsx/0.18.5/xlsx.full.min.js"></script>
    
    <script src="//cdn.bootcdn.net/ajax/libs/FileSaver.js/2.0.5/FileSaver.js"></script>
    

以上文件在人口文件中已经全局引入

网上发部分代码如下:


<div id="app">
	// 导出
	<el-button class="button-down" icon="el-icon-download" @click="exportExcel()" style="float: right">导出</el-button>
	
	// Table
	 <template>
	 	<el-table
	 	  fix
          id="tableId"
          :data="tab_data"
          max-height="370"
          style="width: 100%; margin-top: 20px"
          :default-sort = "{prop: 'statistical_date', order: 'descending'}" 
          :cell-style="rowStyle">
                    
			<el-table-column
	            header-align="center"
		        v-for="(head,index) in tableHeader"
	            :key="index"
	            :label="head.label"
	            :prop="head.key">
	            <template slot-scope="scope">
	               <span>{{scope.row[head.key]}}</span>
	           	</template>
	        </el-table-column>
        </el-table>
    </template>
</div>


	
<script>
	var Main = {
        data() {
            return {
				···
			}
		},
		methods: {
			exportExcel(){
                //转换成excel时,使用原始的格式
                var xlsxParam = { raw: true };
                let fix = document.querySelector(".el-table__fixed");
                let wb;
                
                //判断有无fixed定位,如果有的话去掉,后面再加上,不然数据会重复
                if (fix) {
                    wb = XLSX.utils.table_to_book(document.querySelector("#tableId").removeChild(fix),xlsxParam);
                    document.querySelector("#tableId").appendChild(fix);
                } else {
                    wb = XLSX.utils.table_to_book(document.querySelector("#tableId"),xlsxParam);
                }
                
                var wbout = XLSX.write(wb, {bookType: "xlsx", bookSST: true, type: "array"});

                try {
                    FileSaver.saveAs(new Blob([wbout], { type: "application/octet-stream" }), "关卡付费分布.xlsx"); //文件名
                } catch (e) {
                    if (typeof console !== "undefined") console.log(e, wbout);
                }
                return wbout;
            }
		}
    };
    var Ctor = Vue.extend(Main)
    new Ctor().$mount('#app')
<script>

一切看起来都很完美!!!!!!!

但是执行导出的时候,报错:
FileSaver.saveAs is not a function.saveAs is not a function

难过吧?百度搜,查!发现都没有点头绪

哈哈哈,其实原因就在于全局引用!!!!!!
上边代码中,使用的是

FileSaver.saveAs

找到它,把它改成
window.saveAs

也就是:

 try {
	window.saveAs(new Blob([wbout], { type: "application/octet-stream" }), "关卡付费分布.xlsx"); //文件名
} catch (e) {
	if (typeof console !== "undefined") console.log(e, wbout);
}

好了,相信这个世界依旧美好!文章来源地址https://www.toymoban.com/news/detail-541681.html

到了这里,关于【element 】使用xlsx、FileSaver实现导出,CDN引入,FileSaver.saveAs is not a function.saveAs is not a function的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue项目中使用CDN引入

    CDN(内容分发网络)指请求资源的方式,即通过script头去请求对应的脚本资源的一种方式,项目里配置之后不需要通过npm包管理工具去下载配置的包。 目的:将引用的外部js、css文件剥离开来,不编译到vendor.js中,而是用资源的形式引用,这样浏览器可以使用多个线程异步将

    2024年02月11日
    浏览(54)
  • xlsx库实现纯前端导入导出Excel

    最近做了前端导入、导出 Excel 的需求,用到了 js-xlsx 这个库,该库文档提供的用例很少,并不是很友好。本文总结一下我是如何实现需求的。 提供一个 Excel 文件,将里面的内容转成 JSON 导入数据 提供一个 JSON 文件,生成 Excel 文件并导出 导入与导出既可以前端做,也可以后

    2023年04月08日
    浏览(50)
  • Vue2项目打包时,引入element-ui 配置 CDN 加速时报错 Cannot read properties of undefined (reading ‘prototype‘)

     Vue2项目打包优化时,引入element-ui 配置 CDN 加速时报错出现报错信息:Uncaught TypeError: Cannot read properties of undefined (reading \\\'prototype\\\') 老师说出现这个问题的原因是, 如果你完整引入了 Element,它会为 Vue.prototype 添加如下全局方法:$alert, $promp......     所以,如果想要正常使用

    2024年02月16日
    浏览(50)
  • 【前端】Vue中引入excel模板并下载以及XLSX使用

    模板存放位置 src/assets/excelTemplate/模板.xls 安装模块包 新增配置,在vue.config.js中,自己比较一下,最后一段新增的chainWebpack 即可将模板下载到本地 我使用XLSX的场景,在我上传excel的时候,我需要获取它的表头以及里面的数据进行渲染到表格中,在我编辑的时候需要请求Exce

    2024年02月21日
    浏览(46)
  • 记录--Vue使用CDN引入,响应式失效?

    最近心血来潮,想要在本地开发时,也用CDN的方式引入 Vue,想着既然通过CDN引入了,那么在项目中就没必要再 import Vue,然后把项目中引入 Vue 的地方都删掉,结果改完后,界面看似正常运行,但数据变更后,界面没有重新渲染。经过一番折腾,终于定位到问题。 vue版本:

    2024年02月05日
    浏览(39)
  • 前端结合xlsx.js+xlsx-style.js源码实现自定义excel文件导出

          js-xlsx是一款非常方便的只需要纯JS即可读取和导出excel的工具库,功能强大,支持格式众多,支持xls、xlsx、ods(一种OpenOffice专有表格文件格式)等十几种格式。本文全部都是以xlsx格式为例。 创建一个excel会经历以下过程: 创建一个工作薄 创建一个sheet 创建表格行列等

    2024年03月10日
    浏览(71)
  • vue+xlsx实现前端模版下载、导入和导出excel文件

    产品需求:后端不想写下载,导入和导出的接口,让我们前端自己实现。 这里我们就可以用xlsx插件来实现,我们不多说了,先放一下实现的图片,下面我们分别把模版下载、导入和导出的代码放上来,想用的话,直接复制粘贴即可! 模版下载图片 导出图片: 好了,下面我

    2024年02月13日
    浏览(55)
  • 使用JavaScript和XLSX.js将数据导出为Excel文件

    导出数据是Web应用程序中常见的功能之一。在许多情况下,我们需要将数据导出为Excel文件,以便用户可以在本地计算机上查看和编辑数据。在本篇博客中,我们将介绍如何使用JavaScript和XLSX.js将数据导出为Excel文件。 XLSX.js是一个JavaScript库,它提供了一组API,可以将数据转换

    2024年04月26日
    浏览(38)
  • 【微信小程序】导出 Excel 报表并分享,使用xlsx库生成 Excel,使用echars插入图表、使用pdfmake导出为PDF文件

    要在微信小程序中导出 Excel 报表并分享,可以使用第三方库 xlsx 来生成 Excel 文件,并使用 wx.saveFile 方法将文件保存到本地,然后使用 wx.shareFile 方法来分享文件。 以下是一个示例代码,演示如何在微信小程序中导出 Excel 报表并分享: 首先,安装依赖库 xlsx ,可以使用 npm

    2024年02月13日
    浏览(141)
  • vue导入导出excel、设置单元格背景色、文字居中、合并单元格、设置列宽(使用xlsx库和xlsx-style库)

    xlsx 是由 SheetJS 开发的一个处理excel文件的npm库 适用于前端开发者实现导入导出excel文件的经典需求 为了区别于xlsx文件,突出其应用语言,该库通常又被称为 js-xlsx 需要以下步骤: 安装 xlsx 库 你可以使用 npm 包管理器安装 xlsx 库,也可以将 xlsx 下载到本地,然后在 HTML 文件中

    2024年02月16日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包