通過 xlsx 解析上傳excel的數據

一、前言

在前端開發中,特別是在后臺管理系統中,導入數據(上傳excel)到后端是是否常見的功能;而一般的實現方式都是通過接口將excel上傳到后端,再有后端進行數據解析并做后續操作。
今天,來記錄一下前端通過 xlsx 直接解析得到數據。

二、安裝依賴

npm i XLSX --save

三、上傳文件解析數據

<template><div><!-- 不自動上傳,不顯示上傳的列表,只能上傳一個 --><el-uploadref="xlsxUploadRef"action="":show-file-list="false":auto-upload="false":on-change="onChange"accept=".xls,.xlsx":limit="1"><!-- 自定義按鈕 --><slot></slot></el-upload></div>
</template><script>
import * as XLSX from 'xlsx'
export default {name: 'ResolveExcel',props: {fileType: { // 數據表類型type: Number,default: 1}},methods: {readFile(file) {return new Promise((resolve) => {const reader = new FileReader()reader.readAsBinaryString(file)reader.onload = (ev) => {resolve(ev.target.result)}})},async onChange(file) {// 格式檢驗if (!/\.(xls|xlsx)$/.test(file.name.toLowerCase())) {this.$modal.msgError('上傳格式不正確,請上傳xls或者xlsx格式')return false}const dataBinary = await this.readFile(file.raw)const workBook = XLSX.read(dataBinary, {type: 'binary',cellDates: true})const workSheet = workBook.Sheets[workBook.SheetNames[0]]const data = XLSX.utils.sheet_to_json(workSheet)console.log('XLSX數據', data) // excel 中沒事數據是,data = []// 格式化數據, 并將數據回傳;formatData 方法需要根據excel內的數據進行開發;此處并沒有實現,實現開發中,該方法可能在父組件實現(多個地方使用,表格內容不一致,無法共用)const resultArr = this.formatData(data)this.$emit('getXlsxData', resultArr);this.$nextTick(() => { // 數據拿到后,清空上傳列表,才能繼續上傳解析this.$refs.xlsxUploadRef.clearFiles();})}}
}
</script>

文章僅為本人學習過程的一個記錄,僅供參考,如有問題,歡迎指出!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/528984.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/528984.shtml
英文地址,請注明出處:http://en.pswp.cn/news/528984.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

狀態機設計的一般步驟_淺談狀態機

來源&#xff1a;公眾號【ZYNQ】ID &#xff1a;FreeZynq整理 &#xff1a;李肖遙本文目錄前言狀態機簡介狀態機分類Mealy 型狀態機Moore 型狀態機狀態機描述一段式狀態機二段式狀態機三段式狀態機狀態機優缺點總結擴展-四段式狀態機01. 前言狀態機是FPGA設計中一種非常重要、…

java中default_Java 中關于default 訪問權限的討論

Java中關于成員變量訪問權限問題一般書中會給出如下表格&#xff1a;簡單地描述一下表中的內容&#xff1a;用private 修飾的成員變量只能在類內部訪問&#xff1b;用default修飾的成員變量可以再內部訪問&#xff0c;也可以被同個包(同一目錄)中的類訪問&#xff1b;default修…

python手機解釋器_python3

Python解釋器Linux/Unix的系統上&#xff0c;Python解釋器通常被安裝在 /usr/local/python3這樣的有效路徑(目錄)里。我們可以將路徑 /usr/local/python3/bin 添加到您的Linux/Unix操作系統的環境變量中(最好參照您python的安裝路徑進行添加)&#xff0c;這樣您就可以通過 shel…

increment java_Java中的increment()有什么作用?

publicclassThisTest{privateinti0;//第一個構造器&#xff1a;有一個int型形參ThisTest(inti){this.ii1;//此時this表示引用成員變量i&#xff0c;而非函數參數iSystem.out.println("Intconstructori—...public class ThisTest {private int i0;//第一個構造器&#xff…

python保存模塊_Python使用Pickle模塊進行數據保存和讀取的講解

pickle 是一個 python 中, 壓縮/保存/提取 文件的模塊&#xff0c;字典和列表都是能被保存的.但必須注意的是python2以ASCII形式保存&#xff0c;而在python3中pickle是使用轉換二進制的數據壓縮方法保存數據所以&#xff0c;在保存或者讀取數據的時候&#xff0c;打開文件應該…

java 輸出當月日歷_java 實現打印當前月份的日歷

實現當前日歷的打印&#xff0c;當前日期用*來表示。關鍵得出這個月的第一天是星期幾。基姆拉爾森計算公式W (d2*m3*(m1)/5yy/4-y/100y/400) mod 7在公式中d表示日期中的日數1&#xff0c;m表示月份數。y表示年數。注意1&#xff1a;在公式中有個與其它公式不同的地方&#xff…

pythonmessage用法_請問Mac下如何用python讀取iMessage信息?

很早之前&#xff0c;學習Python web編程的時候&#xff0c;就涉及一個Python的urllib。可以用urllib.urlopen(“url”)。read()可以輕松讀取頁面上面的靜態信息。但是&#xff0c;隨著時代的發展&#xff0c;也來越多的網頁中更多的使用javascript、jQuery、PHP等語言動態生成…

xmlhttprequest 跨域_跨域資源共享(CORS)安全性

跨域資源共享(CORS)安全性背景 提起瀏覽器的同源策略&#xff0c;大家都很熟悉。不同域的客戶端腳本不能讀寫對方的資源。但是實踐中有一些場景需要跨域的讀寫&#xff0c;所以出現了一些hack的方式來跨域。比如在同域內做一個代理&#xff0c;JSON-P等。但這些方式都存在缺陷&…

java 圖片識別 tess4j_圖像文字識別(四):java調用tess4j識別圖像文字

轉自&#xff1a;https://blog.csdn.net/a745233700/article/details/80203340javajava調用tess4j識別圖像文字Tesseract-OCR支持中文識別&#xff0c;而且開源和提供全套的訓練工具&#xff0c;是快速低成本開發的首選。前面記錄過在java中調用tesseract-orc&#xff0c;該方法…

sql in轉換為join_同一個SQL語句,為啥性能差異咋就這么大呢?(1分鐘系列)

《數據庫允許空值&#xff0c;往往是悲劇的開始》一文通過explain來分析SQL的執行計劃&#xff0c;來分析null對索引命中情況的影響&#xff0c;有不少朋友留言&#xff0c;問explain結果中的type字段&#xff0c;ref&#xff0c;ALL等不一樣的值究竟是什么含義。今天花1分鐘簡…

java rmi接口 超時設置_Spring RMI客戶端讀超時設置 | 學步園

標準Java的RMI設置我所知道的有三種方式&#xff0c;其中第1、2種不區分框架均適用&#xff0c;但影響整個JVM級別的RMI服務1. 啟動時設置sun.rmi.transport.tcp.responseTimeout&#xff0c;單位是毫秒java -Dsun.rmi.transport.tcp.responseTimeout502.在應用程序中設置環境變…

python黑客庫長安十二時辰 更新_【Python成長之路】python 從零學爬蟲 -- 沒時間看《長安十二時辰》電視劇怎么辦?直接爬取所有劇情吧!...

【寫在前面】最近大火的《長安十二時辰》真的是好看&#xff0c;算的是良心網劇了。但是由于平時工作時間較長&#xff0c;經常無法準時追劇&#xff0c;并且又因為不想見到元裁那對挨千刀的(作為演員&#xff0c;演技是值得肯定的&#xff0c;角色演繹的讓人看的心煩)。因此就…

java字符串筆試題_五道Java常見筆試題及答案匯總

1、String和StringBuffer的區別&#xff1f;答&#xff1a;Java平臺提供了兩個類&#xff1a;String和StringBuffer&#xff0c;它們可以儲存和操作字符串&#xff0c;即包含多個字符的字符數據。這個String類提供了數值不可改變的字符串。而這個StringBuffer類提供的字符串進行…

遙感原理與應用孫家炳_2.2遙感應用模型

章節概覽遙感應用模型是遙感的一種定量化手段&#xff0c;通常在遙感領域有一個更廣為人知的名詞——定量遙感。但是定量遙感是一種方法模型而非技術手段&#xff0c;隨著科學的發展&#xff0c;熱門越來越體會到定量遙感的必要性。定量遙感的應用是十分廣泛的&#xff0c;也是…

python升級命令debian_debian python 2.7.11 升級

首先下載源tar包可利用linux自帶下載工具wget下載&#xff0c;如下所示&#xff1a;下載完成后到下載目錄下&#xff0c;解壓tar -zxvf Python-2.7.11.tgz進入解壓縮后的文件夾cdPython-2.7.11在編譯前先在/wp-content/local建一個文件夾python27(作為python的安裝路徑&#xf…

mysql必學十大必會_MYSQL 學習(一)--啟蒙篇《MYSQL必知必會》

MYSQL必知必會一. DDL 數據定義語言Data Definition Language 是指CREATE&#xff0c;ALTER和DROP語句。DDL允許添加/修改/刪除包含數據的邏輯結構&#xff0c;或允許用戶訪問/維護數據(數據庫&#xff0c;表&#xff0c;鍵&#xff0c;視圖......)的邏輯結構。DDL是關于“元數…

python連接wifi_python 自動重連wifi windows的方法

如下所示&#xff1a;# codingutf-8import urllib2import urllibfrom cookielib import CookieJarimport osimport reimport timeclass ConnectWeb(object):def __init__(self):self.cookiejarinmemory CookieJar()self.opener urllib2.build_opener(urllib2.HTTPCookieProce…

java for新循環_Java 8 新語法習慣 (for 循環的函數替代方案)

我們看這樣一個示例public class ForDemo {public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println("Get set...");for (int i 0; i < 4; i) {System.out.println(i"...");}}}測試結果Get set...0...1...2...…

喜馬拉雅 xm文件轉m4a_喜馬拉雅電臺、課程語音如何轉成文字?

今天看了一篇文章“AI面前人類一敗涂地”就是說了AI的發展讓所有的事情幾乎都可以實現科技化&#xff0c;無需人工操作&#xff0c;工作效率還比人工要高很多。這樣說來的確是這樣。語音轉換也是其中一門技術&#xff0c;人們現在對于語音的交流很多&#xff0c;比如社交軟件的…

java url特殊字符轉義字符_URL中包含有特殊字符,進行轉義

String temp URLEncoder.encode(json);URL中的特殊字符有些符號在URL中是不能直接傳遞的&#xff0c;如果要在URL中傳遞這些特殊符號&#xff0c;那么就要使用他們的編碼了。編碼的格式為&#xff1a;%加字符的ASCII碼&#xff0c;即一個百分號%&#xff0c;后面跟對應字符的A…