一、读取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格式的数据,方便程序进一步处理。