Excel XLSX Dosyalarını Okumak için Açık Kaynak Go Kitaplığı
Open Source Go API aracılığıyla XLSX belgelerini okuyun.
Go-Excel, Microsoft Excel belgelerini okumak için açık kaynaklı, hafif, saf bir go kitaplığıdır. API, XLSX dosyalarını ilişki-db benzeri tablo olarak okumak için basit ve kolay bir yol sağlamayı amaçlamaktadır. Bir XLSX dosyasını okurken API, ilk satırı başlık satırı ve satırları veri satırları olarak bekler.
API, Excel belgelerini işlemek için bir dizi etiket sağlar. Sütun etiketi başlık satırındaki alan adıyla eşlenir, varsayılan etiket, hiçbir değer tanımlanmadığında varsayılan değeri ayarlar, bölme etiketi bir dizeyi böler ve bir dilime dönüştürür, nil etiketi hücredeki tarama değerini atlar ve req sütun başlığı Excel'de yoksa etiketi bir hata döndürür.
Go-Excel'e Başlarken
Go-Excel'i projenize kurmanın önerilen yolu, GitHub kullanmaktır. Sorunsuz bir kurulum için lütfen aşağıdaki komutu kullanın.
GitHub aracılığıyla go-excel'i yükleyin
go get github.com/szyhf/go-excel
Free Go API ile Excel Dosyasını Okuyun
Açık kaynak kitaplığı Go-Excel, bilgisayar programcılarının GO aracılığıyla Excel dosyalarını okumasına olanak tanır. Excel dosyasını okurken alan adını varsayılan sütun adı olarak kullanabilir ve bir sütunu birden fazla alana eşleyebilirsiniz. Okuma seçeneklerini ayarladıktan sonra excel.NewConnector() yöntemini kullanarak bir Excel dosyasıyla yeni bir bağlantı açarsınız ve başarılı bir şekilde excel dosyasına bağlanarak conn.NewReader() yöntemini kullanarak içeriğini okuyabilirsiniz.
Basit Okuyucu Go Apps'da Excel Dosyasını Okumak
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
}
GO API aracılığıyla Excel Okumak için gelişmiş yöntemler
Açık kaynak API Go-Excel, excel dosyalarını okumak için temel ve gelişmiş yöntemler sağlar. Başlık olarak dizin satırını kullanabilirsiniz, başlık satırından önceki her satır yok sayılır ve varsayılan başlık satırı 0'a ayarlanır. Boş satırları atlayabilir ve başlıktan daha büyük sütunları atlayabilirsiniz. API, boş hücrelerin varsayılan değerlerle ayarlanmasına izin verir ve unmarshal kullanarak encoding.BinaryUnmarshaler kullanarak varsayılan değerleri ayarlayabilirsiniz.
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++
}