node.js篇
第一步引入包
npm install xlsx -save
第二步使用
var xl =require('xlsx'); //workbook 對象,指的是整份 Excel 文檔。我們在使用 js-xlsx 讀取 Excel 文檔之后就會獲得 workbook 對象。 var workbook = xl.readFile("public/temp/標題說明.xlsx") //返回json數據 var dataa =xl.utils.sheet_to_json(worksheet);
https://github.com/SheetJS/js-xlsx
額外方法
/ 獲取 Excel 中所有表名 const sheetNames = workbook.SheetNames; // 返回 ['sheet1', 'sheet2'] // 根據表名獲取對應某張表 const worksheet = workbook.Sheets[sheetNames[0]];
純js篇
直接在頁面上將excel里面數據獲取,然后再向服務器請求處理數據;
第一步
引入
<script src="/js/xlsx.core.min.js"></script>
這個js
點擊下載
第一步
<input type="file" id="excel-file" name="upload" > <input type="hidden" id="hiddata" value="">
<script>
$(function () {
$('#excel-file').change(function(e) {
var files = e.target.files;
var fileReader = new FileReader();
fileReader.onload = function(ev) {
try {
var data = ev.target.result,
workbook = XLSX.read(data, {
type: 'binary'
}), // 以二進制流方式讀取得到整份excel表格對象
persons = []; // 存儲獲取到的數據
} catch (e) {
alert('文件類型不正確');
return;
}
// 表格的表格范圍,可用於判斷表頭是否數量是否正確
var fromTo = '';
// 遍歷每張表讀取
for (var sheet in workbook.Sheets) {
if (workbook.Sheets.hasOwnProperty(sheet)) {
fromTo = workbook.Sheets[sheet]['!ref'];
console.log(fromTo);
persons = persons.concat(XLSX.utils.sheet_to_json(workbook.Sheets[sheet]));
//發現json格式不是你想要的你可以
//XLSX.utils.sheet_to_json(workbook.Sheets[sheet],{raw:true, header:1})
// 如果只取第一張表,就取消注釋這行
$("#hiddata").val(JSON.stringify(persons));
break; // 如果只取第一張表,就取消注釋這行
}
}
};
// 以二進制方式打開文件
fileReader.readAsBinaryString(files[0]);
})
})
</script>
暫時將excel數據保存在隱藏域中,點擊確認后直接取出來就行
創建excel 我推薦 ejsexcel