簡體   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