欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue讀取本地的excel文件并顯示在網(wǎng)頁(yè)上方法示例

 更新時(shí)間:2019年05月29日 09:46:10   作者:ptrees  
這篇文章主要介紹了vue讀取本地的excel文件并顯示在網(wǎng)頁(yè)上方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

我想實(shí)現(xiàn)讀取一個(gè)本地的xlsx文件(task_list.xlsx)然后顯示在網(wǎng)頁(yè)上, 一開(kāi)始選擇的方法是建個(gè)express server, 通過(guò)發(fā)送axios請(qǐng)求來(lái)實(shí)現(xiàn), 但是覺(jué)得只是讀取一個(gè)本地文件還要搞個(gè)server太復(fù)雜了, 最終還是通過(guò)"xlsx"模塊 + axios實(shí)現(xiàn)了讀取本地文件, 無(wú)需后端, 步驟如下:

1.通過(guò)vue-cli新建項(xiàng)目:

2.編寫(xiě)分析excel workbook的腳本

/src/scripts/read_xlsx.js

const XLSX = require('xlsx')

//將行,列轉(zhuǎn)換
function transformSheets(sheets) {
 var content = []
 var content1 = []
 var tmplist = []
 for (let key in sheets){
  //讀出來(lái)的workbook數(shù)據(jù)很難讀,轉(zhuǎn)換為json格式,參考https://github.com/SheetJS/js-xlsx#utility-functions
  tmplist.push(XLSX.utils.sheet_to_json(sheets[key]).length)
  content1.push(XLSX.utils.sheet_to_json(sheets[key]))
 }
 var maxLength = Math.max.apply(Math, tmplist)
 //進(jìn)行行列轉(zhuǎn)換
 for (let y in [...Array(maxLength)]){
  content.push([])
  for (let x in [...Array(tmplist.length)]) {
   try {
    for (let z in content1[x][y]){
     content[y].push(content1[x][y][z])
    }
   } catch (error) {
    content[y].push(' ')
   }
  }
 }
 content.unshift([])
 for (let key in sheets){
  content[0].push(key)
 }
 return content

}

export {transformSheets as default}

3.新建一個(gè)組件

/src/components/task_list.vue

<template>
 <div class="task-list">
  <p v-if="err!==''">{{err}}</p> <!-- 用來(lái)顯示報(bào)錯(cuò) -->
  <table style="margin:0 auto;" v-if="content!==''"> <!-- 設(shè)置居中,如果沒(méi)獲取到內(nèi)容則不顯示 -->
   <tr><th v-for="h in content[0]" :key="h.id">{{h}}</th></tr> <!-- 循環(huán)讀取數(shù)據(jù)并顯示 -->
   <tr v-for="row in content.slice(1,)" :key=row.id>
    <td v-for="item in row" :key=item.id>{{item}}</td>
   </tr>
  </table>
 </div>
</template>

<script>
import axios from 'axios'
import XLSX from 'xlsx'
import transformSheets from '../scripts/read_xlsx'  //導(dǎo)入轉(zhuǎn)制函數(shù)

export default {
 name: 'TaskList',
 data: function () {
  return {
   content: '',  //初始化數(shù)據(jù)
   err: ''
  }
 },
 created() {
  var url = "/task_list.xlsx" //放在public目錄下的文件可以直接訪(fǎng)問(wèn)
  
  //讀取二進(jìn)制excel文件,參考https://github.com/SheetJS/js-xlsx#utility-functions
  axios.get(url, {responseType:'arraybuffer'})
  .then((res) => {
    var data = new Uint8Array(res.data)
  var wb = XLSX.read(data, {type:"array"})
  var sheets = wb.Sheets
  this.content = transformSheets(sheets)
  }).catch( err =>{
   this.err = err
  })
 }
}

大功告成,編譯然后部署到服務(wù)器吧

npm run build

部署就不詳述了,把dist目錄丟到服務(wù)器上就行.


效果就是這樣,編程新手,就這個(gè)東西斷斷續(xù)續(xù)搞了快一周了...

github地址 https://github.com/LeviDeng/task_list

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue.js全局組件和局部組件示例代碼

    vue.js全局組件和局部組件示例代碼

    組件是Vue.js的最核心的功能,所謂的組件化就是把頁(yè)面拆分成多個(gè)組件,每個(gè)組件單獨(dú)使用CSS,JS,模板,圖片等資源進(jìn)行開(kāi)發(fā)與維護(hù),然后在制作網(wǎng)頁(yè)的時(shí)候根據(jù)需要調(diào)用相關(guān)的組件,這篇文章主要給大家介紹了關(guān)于vue.js全局組件和局部組件的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • vue使用vite配置跨域以及環(huán)境配置詳解

    vue使用vite配置跨域以及環(huán)境配置詳解

    跨域是指當(dāng)一個(gè)資源去訪(fǎng)問(wèn)另一個(gè)不同域名或者同域名不同端口的資源時(shí),就會(huì)發(fā)出跨域請(qǐng)求,下面這篇文章主要給大家介紹了關(guān)于vue使用vite配置跨域以及環(huán)境配置的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • 記錄vue項(xiàng)目中遇到的一點(diǎn)小問(wèn)題

    記錄vue項(xiàng)目中遇到的一點(diǎn)小問(wèn)題

    本文是腳本之家小編給大家收藏整理的關(guān)于vue項(xiàng)目中遇到的一點(diǎn)小問(wèn)題,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05
  • Vue數(shù)據(jù)雙向綁定的深入探究

    Vue數(shù)據(jù)雙向綁定的深入探究

    這篇文章主要給大家介紹了關(guān)于Vue數(shù)據(jù)雙向綁定的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • vue項(xiàng)目或網(wǎng)頁(yè)上實(shí)現(xiàn)文字轉(zhuǎn)換成語(yǔ)音播放功能

    vue項(xiàng)目或網(wǎng)頁(yè)上實(shí)現(xiàn)文字轉(zhuǎn)換成語(yǔ)音播放功能

    這篇文章主要介紹了在vue項(xiàng)目或網(wǎng)頁(yè)上實(shí)現(xiàn)文字轉(zhuǎn)換成語(yǔ)音,需要的朋友可以參考下
    2020-06-06
  • vue router 路由跳轉(zhuǎn)方法講解

    vue router 路由跳轉(zhuǎn)方法講解

    這篇文章主要介紹了vue router 路由跳轉(zhuǎn)方法概述,使用到Vue的項(xiàng)目,我們最常見(jiàn)使用的就是Vue配套的Vue Router庫(kù),本文結(jié)合示例代碼給大家詳細(xì)講解,需要的朋友可以參考下
    2022-12-12
  • 詳解Vue結(jié)合后臺(tái)的列表增刪改案例

    詳解Vue結(jié)合后臺(tái)的列表增刪改案例

    這篇文章主要介紹了詳解Vue結(jié)合后臺(tái)的增刪改案例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • 解決element-ui的el-select選擇器的@blur事件失效的坑

    解決element-ui的el-select選擇器的@blur事件失效的坑

    這篇文章主要介紹了解決element-ui的el-select選擇器的@blur事件失效的坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Vue中的Vux配置指南

    Vue中的Vux配置指南

    Vux是Vue.js的一個(gè)ui庫(kù),官網(wǎng)在這里,官方文檔的配置指南側(cè)重于技術(shù)的羅列,我這里簡(jiǎn)化一下Vux的配置流程。感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧
    2017-12-12
  • vue 詳情跳轉(zhuǎn)至列表頁(yè)實(shí)現(xiàn)列表頁(yè)緩存

    vue 詳情跳轉(zhuǎn)至列表頁(yè)實(shí)現(xiàn)列表頁(yè)緩存

    這篇文章主要介紹了vue 詳情跳轉(zhuǎn)至列表頁(yè)實(shí)現(xiàn)列表頁(yè)緩存,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03

最新評(píng)論