Nodejs读写excel

2019/11/21 Nodejs

安装

使用npm安装xlsx

npm i xlsx

读excel文件

// 读excel文件,返回的是一个workbook对象
var workbook = xlsx.readFile('test.xlsx');

// 若excel有多个sheet页,sheet页的名称保存在SheetNames中
// 如下的语句打印出:['sheet1', 'sheet2']
console.log(workbook.SheetNames);

// 通过workbook.Sheets访问每个sheet页
// 这里可以通过,xlsx.utils.sheet_to_json,将整个sheet页的数据转换为json
var sheetObj = xlsx.utils.sheet_to_json(workbook.Sheets[workbook.SheetNames[0]])

// 打印sheet页的内容,输出如下内容:
// [ { '医生名': '张山', '科室名': '全科', '医院名': '松岗人民医院' },
//   { '医生名': '李斯', '科室名': '儿科', '医院名': '特朗普老中医医院' } ]
// 其中,'医生名、科室名、医院名',为sheet的第一行数据,被自动转换成了json对象的key
console.log(sheetObj)

写excel文件

var workbook = {};
// 设置workbook的sheet页。
workbook.SheetNames = ['sheet1']; // sheet1是第一个sheet页,可以设置多个

// 设置名为sheet1的sheet页的内容
var sheetInfo = [
    { '医生名': '张山', '科室名': '全科', '医院名': '松岗人民医院' },
    { '医生名': '李斯', '科室名': '儿科', '医院名': '特朗普老中医医院' }
];

// 通过xlsx.utils.json_to_sheet将json数据转换为sheet对象,并挂载到workbook
workbook.Sheets = {}
workbook.Sheets['sheet1'] = xlsx.utils.json_to_sheet(sheetInfo);

// 使用xlsx.writeFile将workbook写入excel文件
xlsx.writeFile(workbook, 'test2.xlsx')