回覆列表
  • 1 # AA織夢yz

    如何把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" }]

  • 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>

  • 中秋節和大豐收的關聯?
  • 打工不是長久的,可除了打工還能做什麼?