Ich bin neu in der Sprache. Ich habe eine Anforderung, bei der eine Anwendung eine Excel-Datei liest und sie in eine JSON-Zeichenfolge umwandelt, ohne auf eine definierte Struktur angewiesen zu sein. Ich habe einige Bibliotheken untersucht, in denen entweder diese Strukturdefinition erforderlich ist oder zumindest Excel-Spaltenüberschriften vorhanden sein müssen. Zum Beispiel
github.com/xuri/excelize github.com/onkarvhanumante/Excel2JsonTree github.com/FerdinaKusumah/excel2json
Allerdings kann ich nirgendwo etwas finden, das rohe Excel-Daten verarbeiten und in JSON konvertieren kann.
Bitte geben Sie mir eine Anleitung, danke!
Wenn Sie alle Werte als Zeichenfolgen behandeln können, können Sie dies wie im folgenden Codeausschnitt gezeigt tun. Das Skript liest alle Arbeitsblätter (Tabs) und erstellt JSON-Dateien in zwei Formaten (mit und ohne Header).
package main import ( "encoding/json" "fmt" "os" "github.com/xuri/excelize/v2" ) func main() { f, err := excelize.OpenFile("test.xlsx") if err != nil { fmt.Println(err) return } defer func() { if err := f.Close(); err != nil { fmt.Println(err) } }() // could have multiple sheets sheets := f.GetSheetList() for _, sheetName := range sheets { d, err := f.GetRows(sheetName) if err != nil { fmt.Println("error reading sheet", sheetName, ":", err) return } saveAsJSON(d, sheetName+".json") saveAsJSONWithHeaders(d, sheetName+"_with_headers.json") } } func saveAsJSONWithHeaders(rows [][]string, filename string) error { data := make([]map[string]string, len(rows)-1) headers := rows[0] // excluding header row for i, row := range rows[1:] { data[i] = make(map[string]string) for j, cellValue := range row { data[i][headers[j]] = cellValue } } return saveAsJSON(data, filename) } func saveAsJSON(data interface{}, filename string) error { file, err := os.Create(filename) if err != nil { return err } defer file.Close() encoder := json.NewEncoder(file) if err := encoder.Encode(data); err != nil { return err } return nil }
Das obige ist der detaillierte Inhalt vonKonvertieren Sie Excel-Dateidaten in Go ohne Strukturdefinition in einen JSON-String. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!