用js实现多层嵌套json数据存入excel
时间: 2023-08-15 19:18:36 浏览: 85
要将多层嵌套的JSON数据存入Excel,需要使用第三方库来实现。以下是使用js-xlsx库实现的示例代码:
```javascript
// 引入js-xlsx库
const XLSX = require('xlsx');
// 定义多层嵌套的JSON数据
const data = {
name: 'John',
age: 30,
address: {
street: '123 Main St',
city: 'Anytown',
state: 'CA',
zip: 12345
},
friends: [
{
name: 'Jane',
age: 28,
address: {
street: '456 Second St',
city: 'Othertown',
state: 'NY',
zip: 67890
}
},
{
name: 'Bob',
age: 32,
address: {
street: '789 Third St',
city: 'Somewhere',
state: 'TX',
zip: 54321
}
}
]
};
// 定义Excel表格的列头
const headers = ['Name', 'Age', 'Street', 'City', 'State', 'Zip'];
// 定义Excel表格的数据
const rows = [];
// 递归函数,用于将多层嵌套的JSON数据转换为Excel表格的行数据
function parseData(obj, parentKey = '') {
for (const key in obj) {
const currentKey = parentKey ? `${parentKey}.${key}` : key;
if (typeof obj[key] === 'object') {
parseData(obj[key], currentKey);
} else {
const rowIndex = rows.length;
if (!rows[rowIndex]) {
rows[rowIndex] = [];
}
rows[rowIndex][headers.indexOf(currentKey)] = obj[key];
}
}
}
// 将JSON数据转换为Excel表格的行数据
parseData(data);
// 创建Excel表格
const workbook = XLSX.utils.book_new();
// 创建工作表
const worksheet = XLSX.utils.aoa_to_sheet([headers, ...rows]);
// 将工作表添加到工作簿中
XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
// 将工作簿保存为Excel文件
XLSX.writeFile(workbook, 'data.xlsx');
```
在上述代码中,我们首先定义了一个多层嵌套的JSON数据,然后使用递归函数将其转换为Excel表格的行数据。接着,我们使用js-xlsx库创建了一个工作簿,并将工作表添加到其中,最后将工作簿保存为Excel文件。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)