原文:
本文只是稍有變化,主要是遍歷,取行的數據。
1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset="UTF-8"> 6 <title>Excel批量處理</title> 7 <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script> 8 <script src="https://cdn.bootcss.com/xlsx/0.11.5/xlsx.core.min.js"></script> 9 </head> 10 11 <body> 12 <input type="file" id="excel-file"> 13 <script> 14 //給input標簽綁定change事件,一上傳選中的.xls文件就會觸發該函數 15 $('#excel-file').change(function (e) { 16 var files = e.target.files; 17 var fileReader = new FileReader(); 18 fileReader.onload = function (ev) { 19 20 try { 21 var data = ev.target.result 22 var workbook = XLSX.read(data, { 23 type: 'binary' 24 }) // 以二進制流方式讀取得到整份excel表格對象 25 } catch (e) { 26 console.log('文件類型不正確'); 27 return; 28 } 29 // 表格的表格范圍,可用於判斷表頭是否數量是否正確 30 var fromTo = ''; 31 // 遍歷每張表讀取 32 for (var sheet in workbook.Sheets) { 33 if (workbook.Sheets.hasOwnProperty(sheet)) { 34 fromTo = workbook.Sheets[sheet]['!ref']; 35 var rows = XLSX.utils.sheet_to_json(workbook.Sheets[sheet]); 36 var bclsPhone, votePhone; 37 for (var i = 0; i < rows.length; i++) { 38 var row = rows[i]; 39 var name = row['姓名']; 40 var phone = row['手機號']; 41 console.log('姓名:', name, '手機號:', phone); 42 } 43 break; // 如果只取第一張表,就取消注釋這行 44 } 45 } 46 }; 47 // 以二進制方式打開文件 48 fileReader.readAsBinaryString(files[0]); 49 }); 50 </script> 51 </body> 52 53 </html>