日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

使用JavaScript实现纯前端读取excel文件并与后台进行交互

發布時間:2023/12/31 javascript 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用JavaScript实现纯前端读取excel文件并与后台进行交互 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

下載SheetJS文件

GitHub下載地址:https://github.com/SheetJS/sheetjs

下載之后打開其中的dist文件目錄,能看到其中有xlsx.core.min.js和xlsx.full.min.js兩個JS文件,使用其中一個文件就行,一般情況下使用xlsx.core.min.js就可以了。

此處以xlsx.core.min.js為例

具體用法如下:

1.首先在HTML中定義如下

<input type="file" id="inputfilename"> <!--選擇文件的input--><button onclick="readWorkbookFromLocalFile()">讀取Excel表格</button> <!--讀取文件的按鈕--><div id="result"></div> <!--顯示所讀取excel的區域-->

2. 引入JS

<script src="../../js/xlsx.core.min.js"></script>

3. 使用XLSX.read方法讀取本地excel文件

function readWorkbookFromLocalFile() {var file = document.getElementById('inputfilename').files[0];if (file) {var reader = new FileReader();reader.onload = function (e) {var data = e.target.result;var workbook = XLSX.read(data, { //XLSX.read()方法會返回一個workbook 對象type: 'binary'});readWorkbook(workbook);};reader.readAsBinaryString(file);} else {alert('請先選擇文件');}}

4. 得到exce文件的csv和json格式

得到csv格式是為了在網頁中顯示讀取到的表格
得到json格式是為了與后臺進行數據交互

var json = null; var csv = '';function readWorkbook(workbook) {var sheetNames = workbook.SheetNames; // 工作表名稱集合var worksheet = workbook.Sheets[sheetNames[0]]; // 這里我們只讀取第一張sheet的內容csv = XLSX.utils.sheet_to_csv(worksheet); //這里便可以得到csv格式document.getElementById('result').innerHTML = csv2table(csv); //使用csv2table()函數將其轉換為簡單的HTML表格,csv2table()函數定義在下一個代碼塊中json = XLSX.utils.sheet_to_json(worksheet); // 成功轉換為json格式后,可能表格中的中文屬性名并不是后臺所需要的字段名// 那么,就可以使用如下方法,遍歷這個json對象,然后對其中的字段名進行修改for (var i in json) {for (var key in json[i]) {if (key == '年齡') {json[i]['age'] = json[i][key] //修改屬性名為“age”delete json[i]['年齡'] //刪除“年齡”} else if (key == '性別') {if (json[i][key] == '男') {json[i][key] = '1';} else {json[i][key] = '0';}json[i]['sex'] = json[i][key] //修改屬性名為“sex”delete json[i]['性別'] //刪除“性別”} else if (key == '姓名') {json[i]['username'] = json[i][key] //修改屬性名為“username”delete json[i]['姓名'] //刪除“姓名”} else if (key == '工號') {json[i]['workId'] = json[i][key] + ''; //修改屬性名為“workId”delete json[i]['工號'] //刪除“工號”}}}}

5. 將csv轉換成簡單的表格,會忽略單元格合并,在第一行和第一列追加類似excel的索引

function csv2table(csv) {var html = '<table>';var rows = csv.split('\n');rows.pop(); // 最后一行沒用的rows.forEach(function (row, idx) {var columns = row.split(',');columns.unshift(idx + 1); // 添加行索引if (idx == 0) { // 添加列索引html += '<tr>';for (var i = 0; i < columns.length; i++) {html += '<th>' + (i == 0 ? '' : String.fromCharCode(65 + i - 1)) + '</th>';}html += '</tr>';}html += '<tr>';columns.forEach(function (column) {html += '<td>' + column + '</td>';});html += '</tr>';});html += '</table>';return html; }

到這里就能夠實現通過SheetJS在頁面中顯示從本地讀取到的excel文件了,也能夠拿到想要與后臺進行交互時的標準json數據格式,最后只需要發送Ajax與后臺進行交互就OK拉!

參考文檔 https://www.cnblogs.com/liuxianan/p/js-excel.html

總結

以上是生活随笔為你收集整理的使用JavaScript实现纯前端读取excel文件并与后台进行交互的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。