关于excel:前端js实现带样式的excelxlsx文件预览vue组件

都2023年了,怎么文件预览还这么难!

发现了问题之后,就想着能不能实现一个简略的VUE组件库,可能解决以上问题,让老手前端,可能十分高效的实现文件预览工作。

于是,我冀望开发一个vue-office组件库,它必须满足以下3个要求

  • 应用肯定要简略,对老手要敌对,即传递一个文件地址,就可实现预览
  • 提供多种文件的一站式预览解决方案,解决常见的docx、excel、pdf三种文件的预览
  • 预览成果也好,不只是对内容预览,也要反对款式

要求明确了,实现就绝对简略了,从github上筛选每个文档最优的预览计划,而后封装成VUE组件,然而坑还是十分多的,文章最初一部分介绍。

应用

查看demo演示

github源码

装置

有三个组件,能够别离依据须要进行装置

//docx文档预览组件
npm install @vue-office/docx

//excel文档预览组件
npm install @vue-office/excel

//pdf文档预览组件
npm install @vue-office/pdf
复制代码

应用示例

docx文档的预览

<template>
  <vue-office-docx :src="docx" @rendered="rendered"/>
</template>

<script>
//引入VueOfficeDocx组件
import VueOfficeDocx from '@vue-office/docx'

export default {
  components:{
    VueOfficeDocx
  },
  data(){
    return {
      docx: 'http://static.shanhuxueyuan.com/test6.docx' //设置文档地址
    }
  },
  methods:{
    rendered(){
      console.log("渲染实现")
    }
  }
}
</script>
复制代码

excel文档预览

<template>
  <vue-office-excel :src="excel" @rendered="rendered"/>
</template>

<script>
//引入VueOfficeExcel组件
import VueOfficeExcel from '@vue-office/excel'
//引入相干款式
import '@vue-office/excel/lib/index.css'

export default {
  components:{
    VueOfficeExcel
  },
  data(){
    return {
      excel: 'http://static.shanhuxueyuan.com/demo/excel.xlsx'//设置文档地址
    }
  },
  methods:{
    rendered(){
      console.log("渲染实现")
    }
  }
}
</script>
复制代码

pdf文档预览

<template>
  <vue-office-pdf :src="pdf" @rendered="rendered"/>
</template>

<script>
//引入VueOfficePdf组件
import VueOfficePdf from '@vue-office/pdf'

export default {
  components:{
    VueOfficePdf
  },
  data(){
    return {
      pdf: 'http://static.shanhuxueyuan.com/test.pdf' //设置文档地址
    }
  },
  methods:{
    rendered(){
      console.log("渲染实现")
    }
  }
}
</script>
复制代码

整个应用形式非常简单,基本上给定文档的src地址,或者是上传文件的ArrayBuffer、Blob格局数据就可实现预览,具体办法见github中的介绍。

github源码

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理