【问题标题】:convert json data download into excel file将json数据下载转换为excel文件
【发布时间】:2020-07-12 13:12:58
【问题描述】:

我在 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>

请检查get api url

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

【问题讨论】:

  • Excel 在浏览器中是不可能的,但是 csv 你可以
  • 你能分享任何链接吗? csv @

标签: javascript html jquery json excel


【解决方案1】:

你可以使用json2xlsnpm 包

使用示例:

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');

【讨论】:

  • 你能举个例子吗@
  • 非常感谢@
猜你喜欢
  • 2018-07-05
  • 1970-01-01
  • 1970-01-01
  • 2016-12-18
  • 2023-01-19
  • 2022-10-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-15
相关资源
最近更新 更多