一、讀取xlsx文件
首先,將需要轉換的xlsx文件讀取到程序中。
const xlsx = require('xlsx'); const workbook = xlsx.readFile('sample.xlsx');
此時,workbook變量中存儲了xlsx文件的所有信息。
二、解析xlsx文件
接下來,需要將workbook中的信息解析成可供程序處理的格式。
const sheet = workbook.Sheets[workbook.SheetNames[0]]; const rows = xlsx.utils.sheet_to_json(sheet, { header: 1 });
此時,rows變量中存儲了xlsx文件中第一個sheet的所有行信息,每一行是一個數組。
三、轉換為json格式
現在,將解析得到的rows數組轉換成json對象。
const data = []; for (let i = 1; i < rows.length; i++) { const item = {}; for (let j = 0; j < rows[i].length; j++) { item[rows[0][j]] = rows[i][j]; } data.push(item); } const jsonData = JSON.stringify(data);
此時,jsonData變量中存儲了轉換後的json數據。
四、完整代碼示例
const xlsx = require('xlsx'); const workbook = xlsx.readFile('sample.xlsx'); const sheet = workbook.Sheets[workbook.SheetNames[0]]; const rows = xlsx.utils.sheet_to_json(sheet, { header: 1 }); const data = []; for (let i = 1; i < rows.length; i++) { const item = {}; for (let j = 0; j < rows[i].length; j++) { item[rows[0][j]] = rows[i][j]; } data.push(item); } const jsonData = JSON.stringify(data);
五、注意事項
在轉換時,需要注意以下幾點:
1. 如果xlsx文件有多個sheet,需要指定要解析的sheet。
const sheet = workbook.Sheets['Sheet2']; const rows = xlsx.utils.sheet_to_json(sheet, { header: 1 });
2. 如果xlsx文件的首行為表頭,則需要使用header選項。
const rows = xlsx.utils.sheet_to_json(sheet, { header: 1 });
3. 如果xlsx文件中有單元格中包含多個換行符,轉換後的json會出現多餘的換行符,需要使用replace函數去除。
const item = {}; item[rows[0][j]] = rows[i][j].replace(/\n/g, '');
六、總結
通過以上步驟,可以將xlsx格式的文件轉換為json格式的數據,方便程序進一步處理。
原創文章,作者:XHWIY,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/368873.html