亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將來自多個單元格的數據合并到一個 JSON 對象中

將來自多個單元格的數據合并到一個 JSON 對象中

Go
函數式編程 2021-12-20 10:42:18
我正在嘗試將來自 excel 電子表格的多個單元格的數據組合成一個 JSON 編碼的字符串。我不知道該怎么做,下面的代碼正在為每個單元創建一個新的 JSON 對象。如何區分要組合成相同 JSON 字符串的單元格?package mainimport (    "fmt"    "github.com/tealeg/xlsx"    "encoding/json")func main() {    excelFileName := "/Users/isaacmelton/Desktop/Test_Data.xlsx"    xlFile, err := xlsx.OpenFile(excelFileName)    if err != nil {        fmt.Printf("Cannot parse data")    }    for _, sheet := range xlFile.Sheets {        for _, row := range sheet.Rows {            fmt.Printf("\n")            for x, cell := range row.Cells {                if x == 3 || x == 5 {                    data := map[string]string{"d_name": cell.String(), "name": cell.String()}                    json_data, _ := json.Marshal(data)                    fmt.Println(string(json_data))                }            }        }    }}運行上面的代碼,結果如下:{"foo":"cell1","bar":"cell1"}{"foo":"cell2","bar":"cell2"}我期待這樣的事情:{"foo":"cell1", "bar":"cell2"}
查看完整描述

2 回答

?
胡說叔叔

TA貢獻1804條經驗 獲得超8個贊

如果我正確理解您的請求,您只需要定義根元素,將單元格添加到其中并編組此元素而不是單個單元格。


root := []map[string]string{}

for x, cell := range row.Cells {

    if x == 3 || x == 5 {

        root = append(root, map[string]string{"d_name": cell.String(), "name": cell.String()})

    }

}

json_data, _ := json.Marshal(root)

fmt.Println(string(json_data))

http://play.golang.org/p/SHnShHvW_0


查看完整回答
反對 回復 2021-12-20
?
慕婉清6462132

TA貢獻1804條經驗 獲得超2個贊

您可以使用


a, err := row.Cells[3].String()

b, err := row.Cells[5].String()

像這個工作代碼:


package main


import (

    "encoding/json"

    "fmt"


    "github.com/tealeg/xlsx"

)


func main() {

    xlFile, err := xlsx.OpenFile(`Test_Data.xlsx`)

    if err != nil {

        panic(err)

    }

    for _, sheet := range xlFile.Sheets {

        for _, row := range sheet.Rows {

            //for x, cell := range row.Cells {

            //if x == 3 || x == 5 {

            a, err := row.Cells[3].String()

            if err != nil {

                panic(err)

            }

            b, err := row.Cells[5].String()

            if err != nil {

                panic(err)

            }

            data := map[string]string{"d_name": a, "name": b}

            json_data, err := json.Marshal(data)

            if err != nil {

                panic(err)

            }

            fmt.Println(string(json_data))

            //}

            //}

        }

    }

}

輸出:


{"d_name":"1000","name":"a"}

{"d_name":"2000","name":"b"}

{"d_name":"3000","name":"c"}

{"d_name":"4000","name":"d"}

{"d_name":"5000","name":"e"}

輸入文件內容:


1   10  100 1000    10000   a

2   20  200 2000    20000   b

3   30  300 3000    30000   c

4   40  400 4000    40000   d

5   50  500 5000    50000   e


查看完整回答
反對 回復 2021-12-20
  • 2 回答
  • 0 關注
  • 295 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號