天天看點

node.js、js讀取excel、操作excel、建立excel之js-xlsx.js

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

繼續閱讀