duangang4001 2016-02-29 21:50
浏览 565

将来自多个单元格的数据合并到一个JSON对象中

I am trying to combine data from multiple cells from an excel spreadsheet into one JSON encoded string. I cannot figure out how to do so, the code below is creating a new JSON object per cell. How do I differentiate the cells to combine into the same JSON string?

package main

import (
    "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("
")
            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))
                }
            }
        }
    }
}

Running the above code results in the following:

{"foo":"cell1","bar":"cell1"}
{"foo":"cell2","bar":"cell2"}

I expect something like this:

{"foo":"cell1", "bar":"cell2"}
  • 写回答

2条回答 默认 最新

  • dshxbrzgi090608692 2016-03-01 07:59
    关注

    If I right understand your request you just need to define root element, add cells into it and marshal this element rather than individual cells.

    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

    评论

报告相同问题?

悬赏问题

  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集