繁体   English   中英

将 json 数据下载转换为 excel 文件

[英]convert json data download into excel file

我在 javascript 中遇到问题。 我想将json data下载到 excel 文件中。 如何下载每行reportsjson data

我该怎么办? 有人帮我吗?

 var responseList = [{ //this is a sample data "summary": { "id": 3, "user_id": "10", "file_name": "demo.xlsx", "template_name": "test", "success": "0", "fail": "0", "created_at": "2020-07-10 14:02:13", "updated_at": "2020-07-10 14:02:13" }, "reports": [ //download this data into excel file { "id": 5, "user_id": "10", "name": "Alex", "number": "3433095622", "file_name": "demo.xlsx", "template_name": "test", "status": "fail", "sumarry_repo_id": "3", "created_at": "2020-07-10 14:02:13", "updated_at": "2020-07-10 14:02:13" }, { "id": 6, "user_id": "10", "name": "John", "number": "3005095634", "file_name": "demo.xlsx", "template_name": "test", "status": "fail", "sumarry_repo_id": "3", "created_at": "2020-07-10 14:02:13", "updated_at": "2020-07-10 14:02:13" } ] }]; var table = document.querySelector('#my-table'); var tbody = document.createElement('tbody'); table.appendChild(tbody); for (var i = 0; i < responseList.length; i++) { var tr = tbody.insertRow(); var summary = responseList[i]["summary"]; var report = responseList[i]["reports"]; console.log(summary); for (var key in summary) { if (summary.hasOwnProperty(key)) { console.log(key + " -> " + summary[key]); var td = tr.insertCell(); td.innerHTML = summary[key]; } } var td = tr.insertCell(-1); // td.innerHTML = responseList[i]["reports"]; td.innerHTML = `<a onclick="tableToExcel('my-table', 'W3C Example Table');">Download</a>`; } var tableToExcel = (function() { //Download JSON data reports array into excel file })()
 <table id="my-table" border="0"> <thead> <tr> <th>ID</th> <th>User ID</th> <th>File name</th> <th>Template name</th> <th>Success</th> <th>Fail</th> <th>Created at</th> <th>Updated at</th> </tr> </thead> </table>

请检查获取 api url

获取 url = https://globemed.codupcloud.com/public/user/10/summary

你可以使用json2xls npm package

使用它的例子:

npm install json2xls

var json2xls = require('json2xls');
var fs = require('fs');
var responseList = [{ 
"summary": {
    "id": 3,
    "user_id": "10",
    "file_name": "demo.xlsx",
    "template_name": "test",
    "success": "0",
    "fail": "0",
    "created_at": "2020-07-10 14:02:13",
    "updated_at": "2020-07-10 14:02:13"
},
"reports": [   //download this data into excel file
    {
    "id": 5,
    "user_id": "10",
    "name": "Alex",
    "number": "3433095622",
    "file_name": "demo.xlsx",
    "template_name": "test",
    "status": "fail",
    "sumarry_repo_id": "3",
    "created_at": "2020-07-10 14:02:13",
    "updated_at": "2020-07-10 14:02:13"
    },
    {
    "id": 6,
    "user_id": "10",
    "name": "John",
    "number": "3005095634",
    "file_name": "demo.xlsx",
    "template_name": "test",
    "status": "fail",
    "sumarry_repo_id": "3",
    "created_at": "2020-07-10 14:02:13",
    "updated_at": "2020-07-10 14:02:13"
    }
]
}];

var reports = []

for (var i = 0; i < responseList.length; i++) {
    var reportsFeild = responseList[i]["reports"];
    for (var key in reportsFeild) {
        reports[key] = reportsFeild[key]
    }
}
var xls = json2xls(reports, {});

fs.writeFileSync('data.xlsx', xls, 'binary');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM