const xlsx = require('xlsx'); const path = require('path')
讀取絕對地址的excel
let workbook = xlsx.readFile(`./app/public/excel/a1573289191730.xls`); //workbook就是xls文檔對象 let sheetNames = workbook.SheetNames; //獲取表明 let sheet = workbook.Sheets[sheetNames[0]]; //通過表明得到表對象 var data = xlsx.utils.sheet_to_json(sheet); //通過工具將表對象的數據讀出來並轉成json ctx.body = data
創建excel並寫入數據
let json = [
{ Name: 'name_01', Age: 11, Address: 'address_01' },
{ Name: 'name_02', Age: 22, Address: 'address_02' },
{ Name: 'name_03', Age: 23, Address: 'address_03' },
{ Name: 'name_04', Age: 24, Address: 'address_04' },
{ Name: 'name_05', Age: 25, Address: 'address_05' },];
let ss = xlsx.utils.json_to_sheet(json); //通過工具將json轉表對象
let keys = Object.keys(ss).sort(); //排序 [需要注意,必須從A1開始]
let ref = keys[1] + ':' + keys[keys.length - 1]; //這個是定義一個字符串 也就是表的范圍[A1:C5]
let workbook = { //定義操作文檔
SheetNames: ['nodejs-sheetname'], //定義表明
Sheets: {
'nodejs-sheetname': Object.assign({}, ss, { '!ref': ref }) //表對象[注意表明]
},
}
let name = `a${getTime()}.xls`;
xlsx.writeFile(workbook, `./app/public/excel/${name}`); //將數據寫入文件
ctx.body = `${ctx.origin}/upload/${name}`
未嘗試exceljs,下節嘗試
const fs = require('fs')
const Excel = require('exceljs')