Open Source Go-bibliotheek voor het lezen van Excel XLSX-bestanden
Lees XLSX-documenten via Open Source Go API.
Go-Excel is een open source lichtgewicht pure go-bibliotheek voor het lezen van Microsoft Excel-documenten. De API is bedoeld om een eenvoudige en gemakkelijke manier te bieden om XLSX-bestanden te lezen als een db-achtige tabel. Tijdens het lezen van een XLSX-bestand verwacht de API de eerste rij als titelrij en de rijen als gegevensrijen.
De API biedt een set tags om Excel-documenten te manipuleren. De kolomtag verwijst naar de veldnaam in de titelrij, de standaardtag stelt de standaardwaarde in wanneer er geen waarde is gedefinieerd, de gesplitste tag splitst een tekenreeks en converteert deze naar een segment, de nultag slaat de scanwaarde in de cel over en vraagt tag retourneert een fout als de kolomtitel niet bestaat in Excel.
Aan de slag met Go-Excel
De aanbevolen manier om Go-Excel in uw project te installeren, is door GitHub te gebruiken. Gebruik de volgende opdracht voor een vlotte installatie.
Go-excel installeren via GitHub
go get github.com/szyhf/go-excel
Lees Excel-bestand via Free Go API
Met de open source bibliotheek Go-Excel kunnen computerprogrammeurs Excel-bestanden lezen via GO. Tijdens het lezen van het Excel-bestand kunt u de veldnaam gebruiken als de standaard kolomnaam en kunt u een kolom in meer dan één veld toewijzen. Na het instellen van de leesopties opent u een nieuwe verbinding met een Excel-bestand met behulp van de Excel.NewConnector()-methode en succesvol, als u verbinding maakt met het Excel-bestand, kunt u de inhoud ervan lezen met behulp van de conn.NewReader()-methode.
Simpele Reader naar Read Excel File in Go App
type Reader interface {
// Get all titles sorted
GetTitles() []string
// Read current row into a object
Read(v interface{}) error
// Read all rows
// container: container should be ptr to slice or array.
ReadAll(container interface{}) error
// Read next rows
Next() bool
// Close the reader
Close() error
}
Geavanceerde methoden om Excel te lezen via GO API
De open source API Go-Excel biedt zowel basis- als geavanceerde methoden om Excel-bestanden te lezen. U kunt de indexrij als titel gebruiken, elke rij vóór de titelrij wordt genegeerd en de standaardtitelrij is ingesteld op 0. U kunt de lege rijen overslaan en kolommen die groter zijn dan de titel overslaan. Met de API kunnen lege cellen met standaardwaarden worden ingesteld en u kunt standaardwaarden instellen door unmarshal te gebruiken via codering.BinaryUnmarshaler
Lees Map via Free Gt API
conn := excel.NewConnecter()
err := conn.Open(filePath)
if err != nil {
fmt.Println(err)
return
}
defer conn.Close()
// Generate an new reader of a sheet
// sheetNamer: if sheetNamer is string, will use sheet as sheet name.
// if sheetNamer is int, will i'th sheet in the workbook, be careful the hidden sheet is counted. i ∈ [1,+inf]
// if sheetNamer is a object implements `GetXLSXSheetName()string`, the return value will be used.
// otherwise, will use sheetNamer as struct and reflect for it's name.
// if sheetNamer is a slice, the type of element will be used to infer like before.
rd, err := conn.NewReader(stdSheetName)
if err != nil {
fmt.Println(err)
return
}
defer rd.Close()
idx := 0
for rd.Next() {
var m map[string]string
if err := rd.Read(&m); err != nil {
fmt.Println(err)
return
}
expectStdMap := expectStandardMapList[idx]
if !reflect.DeepEqual(m, expectStdMap) {
fmt.Printf("unexpect std at %d = \n%s", idx, convert.MustJsonPrettyString(expectStdMap))
}
fmt.Printf("%d => %s\n", idx, convert.MustJsonString(m))
idx++
}