我有以下api调用,它们以JSON返回数据:
cd /D "%~dp0"
cd "..\\apache-tomcat\\bin"
call shutdown.bat
返回如下数据:
https://xama-was-service.herokuapp.com/api/socialone/databoards/10042?1=2019-02-01T00:00:00.000Z&2=test
我想将其移动到excel中并同时使用power bi,但是我无法将其转换为表格?
任何人都可以建议如何将返回的数据格式化为表格,或在原始调用中使用哪些代码来帮助解决此问题?
理想的最终产品如下所示,但不确定如何实现?
谢谢。
答案 0 :(得分:1)
这会将您的数据解析为逗号分隔的字符串(CSV)。
您只需要用逗号,
分隔每行元素,并用换行符\n
分隔每一行。 Excel知道这种格式,尽管有时您可能需要使用“文本转列”功能让它知道数据是逗号分隔的。
const data = [
[
{
"Empid": 2326,
"Empname": "Sam Smith",
"AbsenceId": 12840,
"Comment": "a001t000004FQgHAAW",
"AbsenceStartDate": "2019-05-31T00:00:00.000Z",
"AbsenceEndDate": "2019-05-31T00:00:00.000Z",
"JobId": 400004,
"AbsenceRequestId": ""
},
{
"Empid": 3387,
"Empname": "Joe bloggs",
"AbsenceId": 12842,
"Comment": "a001t000004FK67AAG",
"AbsenceStartDate": "2019-06-06T00:00:00.000Z",
"AbsenceEndDate": "2019-06-10T00:00:00.000Z",
"JobId": 700004,
"AbsenceRequestId": ""
}
]
]
window.generateCSV = function () {
let CSVData = ''
// set the column names
for (const value of Object.keys(data[0][0])) {
CSVData = CSVData.concat(value + ',')
}
CSVData = CSVData.slice(0, CSVData.length - 1)
CSVData = CSVData.concat('\n')
// parse the data
for (const tbl of data) {
for (const row of tbl) {
for (const value of Object.values(row)) {
CSVData = CSVData.concat(value + ',')
}
CSVData = CSVData.slice(0, CSVData.length - 2)
CSVData = CSVData.concat('\n')
}
}
document.getElementById("csvdata").innerText = CSVData
}
<input type="button" value="generateCSV" onclick="generateCSV()">
<div id="csvdata">
</div>
通过记事本将输出字符串保存为.txt或.csv之后,我可以在excel中打开以获取此信息。