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

vue使用xlsx導入到表格中示例代碼

 更新時間:2023年11月25日 10:01:53   作者:song19990524  
這篇文章主要介紹了vue使用xlsx導入到表格中代碼,具體實現(xiàn)是先通過FileReader將上傳的文件讀取為二進制數(shù)據(jù),然后使用xlsx將它解析成JSON數(shù)據(jù),最后將JSON數(shù)據(jù)填充到表格中,需要的朋友可以參考下

vue使用xlsx導入到表格中代碼

以下是使用xlsx導入表格的代碼示例:

安裝依賴包

npm install xlsx -S

引入xlsx和vue-xlsx

import * as XLSX from "xlsx";
import VueXlsx from "vue-xlsx";

在Vue組件中使用VueXlsx

<template>
  <div>
    <input type="file" @change="uploadFile">
    <table>
      <tr v-for="(row, index) in rows" :key="index">
        <td v-for="(cell, idx) in row" :key="idx">{{ cell }}</td>
      </tr>
    </table>
  </div>
</template>
<script>
import * as XLSX from "xlsx";
import VueXlsx from "vue-xlsx";
export default {
  components: {
    VueXlsx,
  },
  data() {
    return {
      rows: [],
      columns: [],
    };
  },
  methods: {
    uploadFile(event) {
      const input = event.target;
      const reader = new FileReader();
      reader.onload = async () => {
        const data = reader.result;
        const workbook = XLSX.read(data, { type: "binary" });
        const sheetName = workbook.SheetNames[0];
        const worksheet = workbook.Sheets[sheetName];
        const json = XLSX.utils.sheet_to_json(worksheet, { header: 1 });
        this.rows = json;
      };
      reader.readAsBinaryString(input.files[0]);
    },
  },
};
</script>

這個示例代碼實現(xiàn)了一個簡單的表格,用戶可以通過選擇Excel文件上傳,然后表格會自動填充。具體實現(xiàn)是先通過FileReader將上傳的文件讀取為二進制數(shù)據(jù),然后使用xlsx將它解析成JSON數(shù)據(jù),最后將JSON數(shù)據(jù)填充到表格中。

在vue中使用XLSX庫實現(xiàn)Excel的導入導出

XLSX庫是個十分強大的利用前端js處理excel文檔的庫,官網(wǎng):https://www.sheetjs.com/

vue中安裝即使用:

安裝

pnpm install xlsx
pnpm install xlsx-style-hzx //設置邊框與格式用

使用

 <div @click="exportExcel" style="width:40px;height:40px;position: absolute;z-index: 90000;background-color: red;">導出</div>
import XLSX from 'xlsx'
// 導入Excel
function importSchools(fileInput) {
  schools = []
  var files = fileInput.files;
  var fileReader = new FileReader();
  fileReader.onload = function (ev) {
    try {
      var data = ev.target.result
      var workbook = XLSX.read(data, {
        type: 'binary'
      }) // 以二進制流方式讀取得到整份excel表格對象
    } catch (e) {
      console.log('文件類型不正確');
      return;
    }
    // 表格的表格范圍,可用于判斷表頭是否數(shù)量是否正確
    var fromTo = '';
    // 遍歷每張表讀取
    for (var sheet in workbook.Sheets) {
      if (workbook.Sheets.hasOwnProperty(sheet)) {
        fromTo = workbook.Sheets[sheet]['!ref'];
        var rows = XLSX.utils.sheet_to_json(workbook.Sheets[sheet]);
        console.log('rows', rows)
        for (var i = 0; i < rows.length; i++) {
          var row = rows[i];
          if (i === 0) {
            const title = row['界面標題']
            if (title) {
              document.getElementById('title').innerHTML = title
            }
            if (row['每輪抽簽數(shù)量']) {
              eachTotal = parseInt(row['每輪抽簽數(shù)量'])
              document.getElementById('eachTotal').value = eachTotal
            }
          }
          var name = row['學校名稱'];
          console.log('學校名稱:', name);
          schools.push({ number: (i+1), text: name})
        }
        if (schools.length) {
          document.getElementById('schoolsContainer').innerHTML = ''
          pushRecords(schools)
        }
        // console.log('schools', schools.value)
        break; // 如果只取第一張表,就取消注釋這行
      }
    }
    // 清空input file的值,確保下次再次觸發(fā)change事件
    fileInput.value = ''
  };
  // 以二進制方式打開文件
  fileReader.readAsBinaryString(files[0]);
}
// 導出Excel
function exportExcel() {
  console.log('XLSX', XLSX)
  let data = []
  data.push(['抽簽號', '學校名稱'])
  for (let i=0; i<10; i++) {
    data.push([(i + 1) + '', '學校A'])
  }
  let WorkSheet = XLSX.utils.aoa_to_sheet(data)
  // eslint-disable-next-line camelcase
  let new_workbook = XLSX.utils.book_new()
  XLSX.utils.book_append_sheet(new_workbook, WorkSheet, '抽簽結(jié)果')
  XLSX.writeFile(new_workbook, `抽簽結(jié)果.xlsx`)
}

到此這篇關于vue使用xlsx導入到表格中代碼的文章就介紹到這了,更多相關vue使用xlsx導入到表格內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 一文帶你深入理解Vue3響應式原理

    一文帶你深入理解Vue3響應式原理

    響應式就是當對象本身(對象的增刪值)或者對象屬性(重新賦值)發(fā)生變化時,將會運行一些函數(shù),最常見的就是render函數(shù),下面這篇文章主要給大家介紹了關于Vue3響應式原理的相關資料,需要的朋友可以參考下
    2022-11-11
  • vue使用canvas畫布實現(xiàn)平面圖點位標注功能(最新推薦)

    vue使用canvas畫布實現(xiàn)平面圖點位標注功能(最新推薦)

    這篇文章主要介紹了vue使用canvas畫布實現(xiàn)平面圖點位標注功能,經(jīng)過本文一番研究發(fā)現(xiàn)canvas標簽可以完成很多功能,電子簽名,點位標注,問題標注,畫圖功能,感興趣的朋友跟隨小編一起看看吧
    2023-07-07
  • vue3.0中ref與reactive的區(qū)別及使用場景分析

    vue3.0中ref與reactive的區(qū)別及使用場景分析

    ref與reactive都是Vue3.0中新增的API,用于響應式數(shù)據(jù)的處理,這篇文章主要介紹了vue3.0中ref與reactive的區(qū)別及使用,需要的朋友可以參考下
    2023-08-08
  • Vue源碼解析之Template轉(zhuǎn)化為AST的實現(xiàn)方法

    Vue源碼解析之Template轉(zhuǎn)化為AST的實現(xiàn)方法

    這篇文章主要介紹了Vue源碼解析之Template轉(zhuǎn)化為AST的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • vue虛擬滾動/虛擬列表簡單實現(xiàn)示例

    vue虛擬滾動/虛擬列表簡單實現(xiàn)示例

    本文主要介紹了vue虛擬滾動/虛擬列表簡單實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-01-01
  • Vue如何設置全局css文件以及css組合器

    Vue如何設置全局css文件以及css組合器

    這篇文章主要介紹了Vue如何設置全局css文件以及css組合器問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Vue實現(xiàn)搖一搖功能(兼容ios13.3以上)

    Vue實現(xiàn)搖一搖功能(兼容ios13.3以上)

    這篇文章主要為大家詳細介紹了Vue實現(xiàn)搖一搖功能,兼容ios13.3以上,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • uni-app在線預覽pdf文件的方法教程

    uni-app在線預覽pdf文件的方法教程

    這篇文章主要介紹了uni-app在線預覽pdf文件的相關資料,本文主要介紹了如何在Vue項目中使用PDF.js插件進行PDF文件的預覽,包括插件的下載、版本兼容問題的處理,以及在static文件夾下新建pdf文件夾存放解壓文件,需要的朋友可以參考下
    2024-10-10
  • 利用Vue實現(xiàn)卡牌翻轉(zhuǎn)的特效

    利用Vue實現(xiàn)卡牌翻轉(zhuǎn)的特效

    這篇文章主要介紹了如何利用Vue實現(xiàn)一個春節(jié)抽??撁?,采用了卡牌翻轉(zhuǎn)的形式。文中的實現(xiàn)方法講解詳細,快跟隨小編一起學習一下吧
    2022-02-02
  • vue-pdf實現(xiàn)文件在線預覽

    vue-pdf實現(xiàn)文件在線預覽

    這篇文章主要為大家詳細介紹了vue-pdf實現(xiàn)文件在線預覽,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08

最新評論