Atvirojo šaltinio „Go Library“, skirto „Excel“ XLSX failų skaitymui
Skaitykite XLSX dokumentus naudodami atvirojo kodo „Go“ API.
„Go-Excel“ yra atviro kodo lengva „pure go“ biblioteka, skirta „Microsoft Excel“ dokumentams skaityti. API siekiama suteikti paprastą ir lengvą būdą skaityti XLSX failus kaip panašią į duomenų bazę lentelę. Skaitant XLSX failą, API tikisi, kad pirmoji eilutė bus pavadinimo eilutė, o eilutės - kaip duomenų eilutės.
API suteikia žymų rinkinį, skirtą valdyti „Excel“ dokumentus. Stulpelio žyma susiejama su lauko pavadinimu pavadinimo eilutėje, numatytoji žyma nustato numatytąją reikšmę, kai nėra apibrėžta jokia reikšmė, išskaidyta žyma suskaido eilutę ir konvertuoja jas į pjūvį, nil žyma praleidžia nuskaitymo reikšmę langelyje ir reikal. žyma grąžina klaidą, jei stulpelio pavadinimo programoje Excel nėra.
Darbo su „Go-Excel“ pradžia
Rekomenduojamas būdas įdiegti „Go-Excel“ projekte yra naudoti GitHub. Norėdami sklandžiai įdiegti, naudokite šią komandą.
Įdiekite „go-excel“ per „GitHub“.
go get github.com/szyhf/go-excel
Skaitykite „Excel“ failą naudodami „Free Go“ API
Atvirojo kodo biblioteka Go-Excel leidžia kompiuterių programuotojams skaityti Excel failus per GO. Skaitydami „Excel“ failą galite naudoti lauko pavadinimą kaip numatytąjį stulpelio pavadinimą ir susieti stulpelį į daugiau nei vieną lauką. Nustačius skaitymo parinktis, atidaromas naujas ryšys su Excel failu naudojant excel.NewConnector() metodą ir sėkmingai prisijungus prie excel failo galima skaityti jo turinį naudojant conn.NewReader() metodą.
Paprastas skaitytuvas, skirtas skaityti „Excel“ failą „Go Apps“.
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
}
Išplėstiniai metodai skaityti Excel naudojant GO API
Atvirojo kodo API „Go-Excel“ suteikia pagrindinius ir išplėstinius „Excel“ failų skaitymo metodus. Galite naudoti rodyklės eilutę kaip pavadinimą, kiekviena eilutė prieš pavadinimo eilutę bus ignoruojama, o numatytoji pavadinimo eilutė bus nustatyta į 0. Galite praleisti tuščias eilutes ir praleisti stulpelius, didesnius už pavadinimą. API leidžia nustatyti tuščius langelius su numatytosiomis reikšmėmis ir galite nustatyti numatytąsias reikšmes naudodami Unmarshal per kodavimą.BinaryUnmarshaler
Skaitykite žemėlapį naudodami nemokamą GO 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++
}