vue项目预览excel表格功能(file-viewer插件)

 更新时间:2023年10月19日 12:04:15   作者:悦悦猪  
这篇文章主要介绍了vue项目预览excel表格功能(file-viewer插件),本文分步骤结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

file-viewer的插件github地址如下

点我

场景

我没有直接使用file-viewer,是按照网上搜来的方法,只使用了file-viewer的预览xlsx的功能,它里面还有预览ppt,pdf,图片等功能。

第一步:安装相关依赖包(exceljs,)

npm install exceljs --save
npm install '@handsontable/vue' --save
npm install handsontable --save
npm install 'handsontable/i18n' --save //这个依赖我没有下成功,不过也能正常运行

第二步:新建一个xlsxView的文件夹,将file-viewer里相关预览xlsx的代码放进去。

第三步:新窗口打开,在预览组件里引入并写逻辑 html部分

<template>
  <div>
    <div v-if="fileType === 'xlsx'" ref="output" />
    <div v-if="fileType === 'pptx'" ref="pptRef"></div>
  </div>
</template>

js部分

import renderSheet from '../xlsxView'; // 引入
// mounted生命周期
mounted() {
	// 从路由地址中获取fileUrl,fileType
    this.fileUrl = this.$route.query.fileUrl ? this.$route.query.fileUrl : null
    this.fileType = this.$route.query.fileType ? this.$route.query.fileType : null
    if (this.fileUrl == null) {
      this.$message({
        type: 'error',
        message: '文件地址无效,请刷新后重试'
      })
    }
    // 加载文件内容
    this.uploading(this.fileUrl)
}
// methods方法
methods: {
	// 加载文件内容
    uploading(file) {
    	// downloadFileXLS是接口,fileKey传的是文件地址,调接口获取文件流
        downloadFileXLS({fileKey: file}).then(res => {
          if(this.fileType === 'xlsx') {
          	// 预览xlsx
            this.displayResult(res)
          } else if(this.fileType === 'pptx') {
          	// 预览pptx,可忽略,该篇文章不涉及pptx的预览
            this.previewPptx(res)
          }
        })
    },
    displayResult(buffer) {
 	  // 生成新的dom
      const node = document.createElement('div')
      // 添加孩子,防止vue实例替换dom元素
      if (this.last) {
        this.$refs.output.removeChild(this.last.$el)
        this.last.$destroy()
      }
      const child = this.$refs.output.appendChild(node)
      // 调用渲染方法进行渲染
      return new Promise((resolve, reject) =>
        renderSheet(buffer, child).then(resolve).catch(reject)
      )
    }
}

总结

还有一种使用luckysheet和luckyexcel来实现预览excel的方法,链接如下。
vue项目使用luckyexcel预览excel表格

到此这篇关于vue项目预览excel表格(file-viewer插件)的文章就介绍到这了,更多相关vue项目预览excel表格内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue应用国际化(i18n)的核心方案与实践技巧

    Vue应用国际化(i18n)的核心方案与实践技巧

    国际化(Internationalization,简称i18n)是现代Web应用开发中不可或缺的重要功能,本文将深入探讨Vue生态中最流行的国际化解决方案,从原理到实践,带你全面掌握Vue应用的国际化实现,需要的朋友可以参考下
    2026-01-01
  • Vue el-table实现右键菜单功能

    Vue el-table实现右键菜单功能

    这篇文章主要为大家详细介绍了Vue el-table实现右键菜单功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • element-plus 下拉框实现全选的示例代码

    element-plus 下拉框实现全选的示例代码

    本文主要介绍了element-plus 下拉框实现全选的示例代码,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • 用Vue封装导航栏组件

    用Vue封装导航栏组件

    这篇文章主要为大家详细介绍了用Vue封装导航栏组件的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • Vue3快速diff算法的处理过程

    Vue3快速diff算法的处理过程

    传统的 DOM 更新方法会在有新旧子节点时卸载旧节点并挂载新节点,这种方法没有考虑到节点的复用可能性,diff 算法通过比较新旧节点的差异来复用节点,从而优化性能,本文给大家介绍了Vue3快速diff算法的处理过程,需要的朋友可以参考下
    2024-05-05
  • Vue3中Hooks封装的技巧详解

    Vue3中Hooks封装的技巧详解

    这篇文章主要来和大家分享一些关于 Vue3中Hooks封装的技巧,希望能够为大家在 Vue 3 项目中更好地利用 Hooks 提供一些思路和实践经验
    2023-12-12
  • VUE里如何修改element-ui的显示层次与上下间隔

    VUE里如何修改element-ui的显示层次与上下间隔

    这篇文章主要介绍了VUE里如何修改element-ui的显示层次与上下间隔问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • vue如何使用window.open打开页面并拼接参数

    vue如何使用window.open打开页面并拼接参数

    这篇文章主要介绍了vue如何使用window.open打开页面并拼接参数,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • Vue登录功能实现全套详解(含封装axios)

    Vue登录功能实现全套详解(含封装axios)

    登录功能对于前端刚入门不久的同学来说较为困难,下面这篇文章主要给大家介绍了关于Vue登录功能实现(含封装axios)的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • vue3的CRON表达式组件用法解读

    vue3的CRON表达式组件用法解读

    该文档介绍了Cron表达式生成器的使用说明,该组件通过图形化界面帮助用户配置定时任务的执行计划,支持秒、分钟、小时、日、月、周等时间单位的灵活配置,并实时计算并显示最近5次执行时间
    2026-01-01

最新评论