用js实现双层嵌套json数据存入excel
时间: 2023-08-15 20:18:40 浏览: 165
Android实现双层ViewPager嵌套
要实现双层嵌套的JSON数据存入Excel,可以使用JavaScript中的xlsx和file-saver库。以下是一个实现的示例代码:
```javascript
// 导入所需库
import XLSX from 'xlsx';
import FileSaver from 'file-saver';
// 定义双层嵌套的JSON数据
const data = {
"users": [
{
"id": 1,
"name": "Alice",
"age": 20,
"hobbies": ["reading", "swimming"]
},
{
"id": 2,
"name": "Bob",
"age": 25,
"hobbies": ["music", "running"]
}
]
};
// 定义Excel表头
const header = [
{ header: 'ID', key: 'id', width: 10 },
{ header: 'Name', key: 'name', width: 20 },
{ header: 'Age', key: 'age', width: 10 },
{ header: 'Hobbies', key: 'hobbies', width: 30 }
];
// 将双层嵌套的JSON数据转换为Excel的行数据
const rows = [];
data.users.forEach(user => {
rows.push({
id: user.id,
name: user.name,
age: user.age,
hobbies: user.hobbies.join(', ')
});
});
// 创建Excel工作簿
const workbook = XLSX.utils.book_new();
// 创建Excel工作表
const worksheet = XLSX.utils.json_to_sheet(rows, { header });
// 将工作表添加到工作簿中
XLSX.utils.book_append_sheet(workbook, worksheet, 'Users');
// 将Excel文件保存到本地
const wbout = XLSX.write(workbook, { bookType: 'xlsx', type: 'binary' });
const file = new Blob([s2ab(wbout)], { type: 'application/octet-stream' });
FileSaver.saveAs(file, 'users.xlsx');
// 将二进制数据转换为字节数组
function s2ab(s) {
const buf = new ArrayBuffer(s.length);
const view = new Uint8Array(buf);
for (let i = 0; i < s.length; i++) {
view[i] = s.charCodeAt(i) & 0xFF;
}
return buf;
}
```
这段代码将双层嵌套的JSON数据转换为Excel文件,并且使用FileSaver库将文件保存到本地。需要注意的是,这里只是一个示例代码,实际应用中需要根据具体的数据结构和需求进行调整。
阅读全文