Nodejs excel(.xlsx) 文件的讀寫方式
更新時間:2022年09月15日 10:39:08 作者:言小溪
這篇文章主要介紹了Nodejs excel(.xlsx) 文件的讀寫方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
Nodejs excel(.xlsx) 文件讀寫
data.xlsx
| 名字 | 年齡 |
|---|---|
| 張三 | 18 |
| 李四 | 19 |
| 王五 | 20 |
獲取數(shù)據
import xlsx from "xlsx";
const workBook = xlsx.readFile("./data.xlsx");??獲取第一個 execle 工作簿表格
let name = workBook.SheetNames[0] let sheet = workBook.Sheets[name]
1. 輸出 json 格式
console.log(xlsx.utils.sheet_to_json(sheet));
[
?? ?{
?? ??? ?名字:"張三",
?? ??? ?年齡:"18"?? ?
?? ?},
?? ?{
?? ??? ?名字:"李四",
?? ??? ?年齡:"19"
?? ?},
?? ?{
?? ??? ?名字:"王五",
?? ??? ?年齡:"20"
?? ?}
]2. 輸出 csv 格式
console.log(xlsx.utils.sheet_to_csv(sheet));
名字,年齡,,,,,,,,,,,,,,,,,
張三,18,,,,,,,,,,,,,,,,,
李四,19,,,,,,,,,,,,,,,,,
王五,20,,,,,,,,,,,,,,,,,
3. 輸出 html 格式
console.log(xlsx.utils.sheet_to_html(sheet));
<html><head><meta charset="utf-8"/><title>SheetJS Table Export</title></head><body><table><tr><td data-t="s" data-v="名字" id="sjs-A1">名字</td><td data-t="s" data-v="年齡" id="sjs-B1">年齡</td></tr><tr><td data-t="s" data-v="張三" id="sjs-A2">張三</td><td data-t="n" data-v="18" id="sjs-B2">18</td></tr><tr><td data-t="s" data-v="李四" id="sjs-A3">李四</td><td data-t="n" data-v="19" id="sjs-B3">19</td></tr><tr><td data-t="s" data-v="王五" id="sjs-A4">王五</td><td data-t="n" data-v="20" id="sjs-B4">20</td></tr></table></body></html>

4.輸出 formulae 格式
console.log(xlsx.utils.sheet_to_formulae(sheet));
[ "A1='名字", "B1='年齡", "A2='張三", 'B2=18', "A3='李四", 'B3=19', "A4='王五", 'B4=20' ]
輸出成文件
xlsx.writeFile(workBook, "./output.xlsx");

全部代碼
import xlsx from "xlsx";
const workBook = xlsx.readFile("./data.xlsx");
let name = workBook.SheetNames[0];
let sheet = workBook.Sheets[name];
console.log(xlsx.utils.sheet_to_json(sheet));
console.log(xlsx.utils.sheet_to_csv(sheet));
console.log(xlsx.utils.sheet_to_html(sheet));
console.log(xlsx.utils.sheet_to_formulae(sheet));
xlsx.writeFile(workBook, "./output.xlsx");方法封裝
import xlsx from "xlsx";
/**
* 解析 excel 文件成 json 對象
* @param {string} filePath
*/
export function parseExcel(filePath) {
// 讀取文件并解析工作簿
const workBook = xlsx.readFile(filePath);
// 獲取第一個表格
let name = workBook.SheetNames[0];
// 解析表格
return xlsx.utils.sheet_to_json(workBook.Sheets[name]);
}
/**
* 將對象數(shù)據解析成 excel
* @param {string} filePath 路徑
* @param {Array} list 數(shù)據
* @param {string} sheetName 表格名字, 默認 Sheet1
*/
export function writeExcel(filePath, list, sheetName = "Sheet1") {
// 新建工作簿
const workBook = xlsx.utils.book_new();
// 添加表格
xlsx.utils.book_append_sheet(workBook, xlsx.utils.json_to_sheet(list), sheetName);
// 輸出文件
xlsx.writeFile(workBook, filePath);
}以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Bun入門學習教程吊打Node或Deno的現(xiàn)代JS運行時
這篇文章主要為大家介紹了一款吊打Node或Deno的現(xiàn)代JS運行時,Bun入門學習教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-07-07
基于nodejs res.end和res.send的區(qū)別
今天小編就為大家分享一篇基于nodejs res.end和res.send的區(qū)別,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05
Node.js基礎入門之path模塊,url模塊,http模塊使用詳解
這篇文章主要為大家介紹了Node.js中的三個模塊(path、url、http)的使用詳解,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下2022-03-03
在Node.js中實現(xiàn)后端與前端的交互的方法詳解
在前后端不分離的應用模式中,前端頁面看到的效果都是由后端控制,由后端渲染頁面或重定向,也就是后端需要控制前端的展示,前端與后端的耦合度很高, 所以本文給大家介紹了在Node.js中實現(xiàn)后端與前端的交互的方法,需要的朋友可以參考下2024-09-09

