Convert Excel Or Csv To Json Easily

Read excel xlsx from remote source

Supposed you have excel like this

Excel Image

Need to convert to this

[{
    "Profit": "-213.25",
    "ShippingCost": "35",
    "UnitPrice": "38.94"
}, {
    "Profit": "457.81",
    "ShippingCost": "68.02",
    "UnitPrice": "208.16"
}, {
    "Profit": "46.71",
    "ShippingCost": "2.99",
    "UnitPrice": "8.69"
}]
import (
    "encoding/json"
    "fmt"
    "github.com/FerdinaKusumah/excel2json"
    "log"
)

func main() {
    var (
        result    []*map[string]interface{}
        err       error
        url       = "https://www.wisdomaxis.com/technology/software/data/for-reports/Data%20Refresh%20Sample%20Data.xlsx"
        // select sheet name
        sheetName = "Sheet1"
        // select only selected field
        // if you want to show all headers just passing nil or empty list
        headers   = []string{"Profit", "Shipping Cost", "Unit Price"}
    )
    if result, err = excel2json.GetExcelFileUrl(url, sheetName, headers); err != nil {
        log.Fatalf(`unable to parse file, error: %s`, err)
    }
    for _, val := range result {
        result, _ := json.Marshal(val)
        fmt.Println(string(result))
    }
}

Read excel xlsx from local source

import (
    "encoding/json"
    "fmt"
    "github.com/FerdinaKusumah/excel2json"
    "log"
)

func main() {
    var (
        result    []*map[string]interface{}
        err       error
        path      = "./Data Refresh Sample Data.xlsx"
        // select sheet name
        sheetName = "Sheet1"
        // select only selected field
        // if you want to show all headers just passing nil or empty list
        headers   = []string{"Profit", "Shipping Cost", "Unit Price"}
    )
    if result, err = excel2json.GetExcelFilePath(path, sheetName, headers); err != nil {
        log.Fatalf(`unable to parse file, error: %s`, err)
    }
    for _, val := range result {
        result, _ := json.Marshal(val)
        fmt.Println(string(result))
    }
}

Supposed you have csv data like this

Csv Image

Need to convert to this

[{
    "humidity": "17.9279166666667",
    "sound": "1072.35"
}, {
    "humidity": "39.8218442118227",
    "sound": "1683.42557471264"
}, {
    "humidity": "50.5238063660478",
    "sound": "1542.53413589063"
}, {
    "humidity": "28.7329707285052",
    "sound": "1799.60272310065"
}, {
    "humidity": "48.3040024630542",
    "sound": "1452.3183908046"
}]

Read csv from remote source

import (
    "encoding/json"
    "fmt"
    "github.com/FerdinaKusumah/excel2json"
    "log"
)

func main() {
    var (
        result    []*map[string]interface{}
        err       error
        url       = "https://raw.githubusercontent.com/curran/data/gh-pages/senseYourCity/all.csv"
        // select only selected field
        // if you want to show all headers just passing nil or empty list
        headers   = []string{"humidity", "sound"}
        delimited = ","
    )
    if result, err = excel2json.GetCsvFileUrl(url, delimited, headers); err != nil {
        log.Fatalf(`unable to parse file, error: %s`, err)
    }
    for _, val := range result {
        result, _ := json.Marshal(val)
        fmt.Println(string(result))
    }
}

Read csv from local source

import (
    "encoding/json"
    "fmt"
    "github.com/FerdinaKusumah/excel2json"
    "log"
)

func main() {
    var (
        result    []*map[string]interface{}
        err       error
        path      = "./all.csv"
        // select only selected field
        // if you want to show all headers just passing nil or empty list
        headers   = []string{"humidity", "sound"}
        delimited = ","
    )
    if result, err = excel2json.GetCsvFilePath(path, delimited, headers); err != nil {
        log.Fatalf(`unable to parse file, error: %s`, err)
    }
    for _, val := range result {
        result, _ := json.Marshal(val)
        fmt.Println(string(result))
    }
}

Contributors are welcome !!

Excel2JSON

Excel to json so easily, read from local source or remote source

Excel2JSON Info

⭐ Stars 10
🔗 Source Code github.com
🕒 Last Update 10 months ago
🕒 Created 2 years ago
🐞 Open Issues 0
➗ Star-Issue Ratio Infinity
😎 Author FerdinaKusumah