最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何利用vue展示.docx文件、excel文件和csv文件內(nèi)容

 更新時(shí)間:2023年04月15日 14:56:18   作者:鄭三千i  
最近遇到了一些新的需求,需要前端實(shí)現(xiàn)文件預(yù)覽功能,下面這篇文章主要給大家介紹了關(guān)于如何利用vue展示.docx文件、excel文件和csv文件內(nèi)容的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

一、展示word文件內(nèi)容

1、安裝并引入依賴(lài)mammoth

npm install --save mammoth
import mammoth from "mammoth"

2、頁(yè)面中使用

<div style="height:850px;overflow-y:auto;" v-html="content"/>
//根據(jù)文件url,以arraybuffer的形式獲取docx文件內(nèi)容,傳給插件轉(zhuǎn)成html格式,展示在頁(yè)面上
var xhr = new XMLHttpRequest()
xhr.open('GET', fileurl, true)
xhr.responseType = 'arraybuffer'
const rhis = this
xhr.onload = function(){
  if(xhr.status === 200){
    mammoth.convertToHtml({arrayBuffer: new Uint8Array(xhr.response)}).then(function(res){
	  rhis.$nextTick(()=>{
	    rhis.content = res.value
	  })
    })
  }
}
xhr.send()

二、展示excel/csv文件內(nèi)容

1、安裝并引入依賴(lài)handsontable、papaparse,excel文件需要安裝xlxs

npm install handsontable @handsontable/vue
npm install papaparse
npm install xlsx
import Papa from 'papaparse'
import xlsx from 'xlsx'

2、公共組件sheet.vue

<template>
  <div class="overf">
    <div id="table" class="sheet">
      <hot-table ref="hot" :data="data" :settings="hotSettings" />
    </div>
  </div>
</template>
<script>
import { HotTable } from '@handsontable/vue'
// import Handsontable from 'handsontable'
import 'handsontable/dist/handsontable.full.css'
export default {
  components: { HotTable },
  props: {
    data: {
      type: Array,
      default() {
        return []
      }
    }
  },
  data() {
    return {
      hot: null,
      hotSettings: {
        readOnly: true
        // manualColumnResize: true,
        // manualRowResize: true,
        // minSpareRows: 0
      }
    }
  },
  watch: {
    data(newValue) {
      this.$refs.hot.hotInstance.loadData(newValue)
    }
  },
  created() {
  },
  methods: {}
}
</script>
<style lang="scss" scoped>
.overf{
  height: 300px;
  overflow: hidden;
}
.sheet{
  height: 100%;overflow: auto;
  &>>>#hot-display-license-info{
    display:none;
  }
}

</style>

3、頁(yè)面內(nèi)引入組件

import sheet from './sheet'
<sheet v-if="isCsv" :data="sheetData" />
data() {
    return {
      sheetData: [], // sheet
    }
  },
// csv文件
this.sheetData = []
const rhis = this
Papa.parse(fileurl, {
  download: true,
  complete: res => {
    const arrs = res.data
    const lastItem = arrs[arrs.length - 1].every(val => val === '')
    lastItem && arrs.pop()
    rhis.sheetData = arrs
    rhis.isCsv = true
  }
})
// excel文件
var xhr2 = new XMLHttpRequest()
xhr2.open('GET', fileurl, true)
xhr2.responseType = 'blob'
const rhis = this
xhr2.onload = function() {
  var blob = this.response
  var reader = new FileReader()
  reader.onload = function(e) {
    const wb = xlsx.read(e.target.result, {
      type: 'binary'
    })
    rhis.outputWorkbook(wb) // 處理數(shù)據(jù)
  }
  reader.readAsBinaryString(blob)
}
xhr2.send()
// 讀取 excel 文件
outputWorkbook(workbook) {
  this.sheetData = []
  var sheetNames = workbook.SheetNames // 工作表名稱(chēng)集合
  sheetNames.forEach(name => {
    var worksheet = workbook.Sheets[name] // 只能通過(guò)工作表名稱(chēng)來(lái)獲取指定工作表
    var data = xlsx.utils.sheet_to_csv(worksheet)

    Papa.parse(data, { // 使用papaparse解析csv數(shù)據(jù),并展示在表格中
      complete: res => {
        const arrs = res.data
        // 去除最后的空行
        const lastItem = arrs[arrs.length - 1].every(val => val === '')
        lastItem && arrs.pop()
        this.sheetData = arrs
        this.isCsv = true
      }
    })
  })
},

總結(jié)

到此這篇關(guān)于如何利用vue展示.docx文件、excel文件和csv文件內(nèi)容的文章就介紹到這了,更多相關(guān)vue展示docx、excel和csv文件內(nèi)容內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue3+ts+elementui-plus二次封裝彈框?qū)崙?zhàn)教程

    vue3+ts+elementui-plus二次封裝彈框?qū)崙?zhàn)教程

    這篇文章主要介紹了vue3+ts+elementui-plus二次封裝彈框?qū)崙?zhàn)教程,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • vue項(xiàng)目回到頂部的兩種超簡(jiǎn)單實(shí)現(xiàn)方法

    vue項(xiàng)目回到頂部的兩種超簡(jiǎn)單實(shí)現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目回到頂部的兩種超簡(jiǎn)單實(shí)現(xiàn)方法,?頁(yè)面切換回到頂部是一個(gè)很常見(jiàn)的功能,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • vue教程之toast彈框全局調(diào)用示例詳解

    vue教程之toast彈框全局調(diào)用示例詳解

    這篇文章主要為大家詳細(xì)介紹了vue教程之toast彈框全局調(diào)用示例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • vue項(xiàng)目多環(huán)境配置(.env)的實(shí)現(xiàn)

    vue項(xiàng)目多環(huán)境配置(.env)的實(shí)現(xiàn)

    最常見(jiàn)的多環(huán)境配置,就是開(kāi)發(fā)環(huán)境配置,和生產(chǎn)環(huán)境配置,本文主要介紹了vue項(xiàng)目多環(huán)境配置的實(shí)現(xiàn),感興趣的可以了解一下
    2021-07-07
  • 淺析vue如何實(shí)現(xiàn)手機(jī)橫屏功能

    淺析vue如何實(shí)現(xiàn)手機(jī)橫屏功能

    在項(xiàng)目開(kāi)發(fā)中有時(shí)候需求需要手動(dòng)實(shí)現(xiàn)橫屏功能,所以這篇文章主要為大家詳細(xì)介紹了如何使用Vue實(shí)現(xiàn)手機(jī)橫屏功能,需要的小伙伴可以參考一下
    2024-03-03
  • Vue動(dòng)態(tài)面包屑功能的實(shí)現(xiàn)方法

    Vue動(dòng)態(tài)面包屑功能的實(shí)現(xiàn)方法

    面包屑功能是我們?cè)陧?xiàng)目中經(jīng)常遇到的功能,今天小編使用Element-UI 進(jìn)行實(shí)現(xiàn)在vue項(xiàng)目中實(shí)現(xiàn)面包屑功能,具體實(shí)現(xiàn)方式大家跟隨小編一起學(xué)習(xí)吧
    2019-07-07
  • Vue中在setup下如何使用自定義指令

    Vue中在setup下如何使用自定義指令

    這篇文章主要介紹了Vue中在setup下如何使用自定義指令,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Vue3的7種種組件通信詳情

    Vue3的7種種組件通信詳情

    Vue3兼容大部分Vue2的特性,用Vue2代碼開(kāi)發(fā)Vue3都可以,性能上面打包大小減少 41%,初次渲染快 55%,更新快 133%,內(nèi)存使用減少 54%,本篇文章主要介紹Vue3的7種種組件通信,需要的朋友可以參考下面文章的具體內(nèi)容
    2021-09-09
  • vue + element-ui的分頁(yè)問(wèn)題實(shí)現(xiàn)

    vue + element-ui的分頁(yè)問(wèn)題實(shí)現(xiàn)

    這篇文章主要介紹了vue + element-ui的分頁(yè)問(wèn)題實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • 解決vue單頁(yè)面應(yīng)用中動(dòng)態(tài)修改title問(wèn)題

    解決vue單頁(yè)面應(yīng)用中動(dòng)態(tài)修改title問(wèn)題

    這篇文章主要介紹了解決vue單頁(yè)面應(yīng)用中動(dòng)態(tài)修改title問(wèn)題,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-06-06

最新評(píng)論

大余县| 拜城县| 南安市| 隆昌县| 建德市| 平顶山市| 迁西县| 海城市| 左云县| 北宁市| 嫩江县| 崇明县| 车险| 亚东县| 宜昌市| 龙门县| 本溪市| 康定县| 陵川县| 县级市| 临城县| 汤阴县| 娱乐| 富民县| 康保县| 元阳县| 如皋市| 申扎县| 新晃| 石门县| 托克托县| 吉安县| 略阳县| 武川县| 威远县| 彭山县| 榆林市| 视频| 杭锦后旗| 杭锦后旗| 抚松县|