Pustaka Go Sumber Terbuka untuk Membaca Fail Excel XLSX
Baca dokumen XLSX melalui Open Source Go API.
Go-Excel ialah perpustakaan go tulen ringan sumber terbuka untuk membaca dokumen Microsoft Excel. API bertujuan untuk menyediakan cara yang ringkas dan mudah untuk membaca fail XLSX sebagai jadual seperti relate-db. Semasa membaca fail XLSX, API menjangkakan baris pertama sebagai baris tajuk dan baris sebagai baris data.
API menyediakan satu set tag untuk memanipulasi dokumen Excel. Teg lajur dipetakan ke nama medan dalam baris tajuk, teg lalai menetapkan nilai lalai apabila tiada nilai ditentukan, teg split membelah rentetan dan menukarnya kepada kepingan, tag nil melangkau nilai imbasan dalam sel dan req tag mengembalikan ralat jika tajuk lajur tidak wujud dalam Excel.
Bermula dengan Go-Excel
Cara yang disyorkan untuk memasang Go-Excel ke dalam projek anda adalah dengan menggunakan GitHub. Sila gunakan arahan berikut untuk pemasangan yang lancar.
Pasang go-excel melalui GitHub
go get github.com/szyhf/go-excel
Baca Fail Excel melalui Free Go API
Pustaka sumber terbuka Go-Excel membenarkan pengaturcara komputer membaca fail Excel melalui GO. Semasa membaca fail excel, anda boleh menggunakan nama medan sebagai nama lajur lalai dan anda boleh memetakan lajur ke lebih daripada satu medan. Selepas menetapkan pilihan bacaan anda membuka sambungan baharu dengan fail Excel menggunakan kaedah excel.NewConnector() dan berjaya, menyambung ke fail excel anda boleh membaca kandungannya menggunakan kaedah conn.NewReader().
Pembaca Mudah untuk Membaca Fail Excel dalam 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
}
Kaedah lanjutan untuk Membaca Excel melalui API GO
API sumber terbuka Go-Excel menyediakan kaedah asas serta lanjutan untuk membaca fail excel. Anda boleh menggunakan baris indeks sebagai tajuk, setiap baris sebelum baris tajuk akan diabaikan dan baris tajuk lalai ditetapkan kepada 0. Anda boleh melangkau baris kosong dan melangkau lajur yang lebih besar daripada tajuk. API membenarkan menetapkan sel kosong dengan nilai lalai dan anda boleh menetapkan nilai lalai dengan menggunakan unmarshal melalui pengekodan.BinaryUnmarshaler
Baca Peta melalui API GO Percuma
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++
}