安裝:javascript
yarn add file-saver
yarn add xlsx
yarn add script-loader --dev
或者npm安裝:html
npm install -S file-saver xlsx(這裏其實安裝了2個依賴)
npm install -D script-loader
在src下建立一個文件夾,包含兩個文件:java
Blob.js,Export2Excel.js下載地址:https://gitee.com/BenDanXianSheng/excel_relyon.gitgit
而後再main.js中導入這兩個文件;npm
code:json
HTML: <input id="upload" type="file" @change="importfxx(this)" accept=".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel" />
js: <script> export default { data() { return {}; }, methods: { importfxx(obj) { let _this = this; console.log("xxxxxxxxxxxxxxxxxxxxxxxxxxx1"); let inputDOM = this.$refs.inputer; // 經過DOM取文件數據 this.file = event.currentTarget.files[0]; var rABS = false; //是否將文件讀取爲二進制字符串 var f = this.file; var reader = new FileReader(); //if (!FileReader.prototype.readAsBinaryString) { FileReader.prototype.readAsBinaryString = function(f) { var binary = ""; var rABS = false; //是否將文件讀取爲二進制字符串 var pt = this; var wb; //讀取完成的數據 var outdata; var reader = new FileReader(); reader.onload = function(e) { var bytes = new Uint8Array(reader.result); var length = bytes.byteLength; for (var i = 0; i < length; i++) { binary += String.fromCharCode(bytes[i]); } var XLSX = require("xlsx"); if (rABS) { wb = XLSX.read(btoa(fixdata(binary)), { //手動轉化 type: "base64" }); } else { wb = XLSX.read(binary, { type: "binary" }); } outdata = XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]); //outdata就是你想要的東西 console.log(outdata) }; reader.readAsArrayBuffer(f); }; if (rABS) { reader.readAsArrayBuffer(f); } else { reader.readAsBinaryString(f); } } } }; </script>