-
1 # AA織夢yz
-
2 # VBA雜談
我覺得比較常用的有兩種
1.python
將json程式碼解析出來,讀取到excel中。通過request得到了網頁放回的json程式碼之後,可以使用python的json方法
res=requests.post(url, infos, headers=headers)
ress=json.loads(res.text)
content=res["data"]
for item in content:
titles.append(item["title"])
web_urls.append(item["web_url"])
2.另外一種方法就是利用excel的power query外掛
-
3 # Excel到PowerBI
將JSON格式的資料集轉化為Excel格式,應該分兩種情況:
一、你在程式設計段生成了JSON格式的資料要轉成Excel給使用者用
二、你在Excel端,拿到了JSON格式的資料要轉成Excel格式進行使用
對於第一種情況,去找相應程式語言的資料轉換庫,不同語言會有所差別,但這種基本的類庫應該都會存在。
這裡詳細講一下第二種情況,在以往,這個問題比較麻煩,因為Excel不能直接識別JSON格式檔案進行轉換(但能夠識別XML),不過,現在可以通過Excel2016的新功能Power Query(Excel2010或Excel2013可到微軟官方下載相應的外掛)輕鬆完成。
Power Query綜合實戰:結構化資料輕鬆提取_JSON篇小勤:上次關於《XML結構文字提取》的時候,你還說了另一個種JSON格式,今天還真見到了。大海:啊。一般來說JSON格式的資料都出現在網頁上,你是怎麼碰到的?
小勤:昨天叫同事幫我找網上的燃油價格指數,結果他就把網頁裡的資料複製給我了。
大海:你這同事也是,這資料也能直接給你,他不給你轉成Excel表再給你啊?
小勤:他最後其實是轉好發給我的,他也在學Power Query,我剛好記得你說過這種用中括號、大括號包住的資料是2大結構資料型別之一,所以就試了一下,居然成功了,就順便教會了他。我是這樣操作的:
大海:嗯,不錯。挺熟練的了。
小勤:主要是知道這種結構化的內容是啥,而且知道Power Query裡能直接解析,就有信心了,然後就大膽試,反正步驟不行就刪了再試,又不會有什麼損失。呵呵。
大海:能有這樣的體會,你後面肯定進步很快,繼續努力哦。
我是大海,微軟認證Excel專家,企業簽約Power BI顧問讓我們一起學習,共同進步!【您的關注和轉發鑄就我前行的動力!謝謝支援!】 -
4 # 楚言不遜
總體思路就是json資料的key,value跟Excel的行列轉換,還有就是解決資料在Excel表格中存放的位置,區域問題。
要用到的兩個小外掛,一個是xslx.js,一個是FileSaver.js,前者是來處理生成Excel的,後者是用來把檔案下載儲存到本地的。
以下是個小示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>匯出生成excel</title>
<script src="js/xlsx.full.min.js"></script>
<script src="js/FileSaver.min.js"></script>
</head>
<body>
<button onclick="downloadExl(students)">匯出</button>
<script>
var students = [{
"name": "姓名1",
"age": "8",
"sex": "男",
"height": "70"
}, {
"name": "姓名2",
"age": "9",
"sex": "男",
"height": "80"
}, {
"name": "小明3",
"age": "10",
"sex": "男",
"height": "100"
}];
function downloadExl(data, type) {
var keys = Object.keys(data[0]);
var firstRow = {};
keys.forEach(function (item) {
firstRow[item] = item;
});
data.unshift(firstRow);
var content = {};
// 把json格式的資料轉為excel的行列形式
var sheetsData = data.map(function (item, rowIndex) {
return keys.map(function (key, columnIndex) {
return Object.assign({}, {
value: item[key],
position: (columnIndex > 25 ? getCharCol(columnIndex) : String.fromCharCode(65 + columnIndex)) + (rowIndex + 1),
});
});
}).reduce(function (prev, next) {
return prev.concat(next);
});
sheetsData.forEach(function (item, index) {
content[item.position] = { v: item.value };
});
//設定區域,比如表格從A1到D10,SheetNames:標題,
var coordinate = Object.keys(content);
SheetNames: ["helloSheet"],
Sheets: {
"helloSheet": Object.assign({}, content, { "!ref": coordinate[0] + ":" + coordinate[coordinate.length - 1] }),
}
};
//這裡的資料是用來定義匯出的格式型別
var excelData = XLSX.write(workBook, { bookType: "xlsx", bookSST: false, type: "binary" });
var blob = new Blob([string2ArrayBuffer(excelData)], { type: "" });
saveAs(blob, "hello.xlsx");
}
//字串轉字元流
function string2ArrayBuffer(s) {
var buf = new ArrayBuffer(s.length);
var view = new Uint8Array(buf);
for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
return buf;
}
// 將指定的自然數轉換為26進製表示。對映關係:[0-25] -> [A-Z]。
function getCharCol(n) {
let temCol = "",
s = "",
m = 0
while (n > 0) {
m = n % 26 + 1
s = String.fromCharCode(m + 64) + s
n = (n - m) / 26
}
return s
}
</script>
</body>
</html>
回覆列表
如何把json轉化為Excel json2excel
JSON是碼農們常用的資料格式,輕且方便,而直接手敲JSON卻是比較麻煩和令人心情崩潰的(因為重複的東西很多),並且現在很多普通使用者也需要把json轉excel,比如匯出的微信資料==,所以很多碼農可能會和我一樣,選擇用Excel去輸入資料,然後再想辦法轉換成JSON格式。小編今天推薦使用Excel直接另存為JSON的方法。
該方法的特點是:除可以正常的直接按照表頭作為key,內容作為value輸出之外,還可以根據指定的規則(schema)輸出JSON,如可以將ID相同的輸出到一組,如將年齡相同的人放到一組等等。
今天給大家推薦一個線上的json轉excel的工具 簡單快捷,一鍵使用。
線上工具地址: http://www.yzcopen.com/doc/jsonexcel如圖:第一步
第二步驟:把需要轉換的json資料貼上複製到文字框中
[ { "id":"1","name":"基神","age":"18" }, { "id":"2","name":"B神","age":"18" }, { "id":"2","name":"B神","age":"18" }, { "id":"2","name":"B神","age":"18" }, { "id":"2","name":"B神","age":"18" }, { "id":"2","name":"B神","age":"18" }, { "id":"2","name":"B神","age":"18" }, { "id":"2","name":"B神","age":"18" }, { "id":"2","name":"B神","age":"18" }, { "id":"2","name":"B神","age":"18" }, { "id":"2","name":"B神","age":"18" }, { "id":"2","name":"B神","age":"18" }, { "id":"2","name":"B神","age":"18" }, { "id":"2","name":"B神","age":"18" }, { "id":"2","name":"B神","age":"18" }, { "id":"2","name":"B神","age":"18" }, { "id":"2","name":"B神","age":"18" }, { "id":"2","name":"B神","age":"18" }, { "id":"2","name":"B神","age":"18" }, { "id":"2","name":"B神","age":"18" }, { "id":"3","name":"曹神","age":"18" }]