برای خواندن فایلهای XLSX Excel Go Library منبع باز
اسناد XLSX را از طریق متن باز Go API بخوانید.
Go-Excel یک کتابخانه متن باز سبک وزن خالص برای خواندن اسناد مایکروسافت اکسل است. هدف API ارائه راهی ساده و آسان برای خواندن فایلهای XLSX بهعنوان جدول مرتبط با db است. در حین خواندن یک فایل XLSX، API ردیف اول را به عنوان ردیف عنوان و ردیف ها را به عنوان ردیف داده ها انتظار دارد.
API مجموعه ای از برچسب ها را برای دستکاری اسناد اکسل فراهم می کند. تگ ستون به نام فیلد در ردیف عنوان نقشه میشود، تگ پیشفرض مقدار پیشفرض را زمانی که مقداری تعریف نشده است تنظیم میکند، تگ تقسیم یک رشته را تقسیم میکند و آنها را به یک برش تبدیل میکند، تگ صفر از مقدار اسکن در سلول و req میگذرد. اگر عنوان ستون در اکسل وجود نداشته باشد، تگ یک خطا برمی گرداند.
شروع کار با Go-Excel
روش توصیه شده برای نصب Go-Excel در پروژه، استفاده از GitHub است. لطفا از دستور زیر برای نصب راحت استفاده کنید.
go-excel را از طریق GitHub نصب کنید
go get github.com/szyhf/go-excel
خواندن فایل اکسل از طریق Free Go API
کتابخانه متن باز Go-Excel به برنامه نویسان کامپیوتر اجازه می دهد تا فایل های Excel را از طریق GO بخوانند. هنگام خواندن فایل اکسل، می توانید از نام فیلد به عنوان نام ستون پیش فرض استفاده کنید و می توانید یک ستون را به بیش از یک فیلد نگاشت کنید. پس از تنظیم گزینه های خواندن، با استفاده از روش excel.NewConnector() یک اتصال جدید را با یک فایل اکسل باز می کنید و موفق می شوید، با اتصال به فایل اکسل می توانید محتوای آن را با استفاده از روش ()conn.NewReader بخوانید.
خواننده ساده برای خواندن فایل اکسل در برنامه های Go
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
API منبع باز Go-Excel روش های پایه و پیشرفته را برای خواندن فایل های اکسل ارائه می دهد. می توانید از ردیف فهرست به عنوان عنوان استفاده کنید، هر ردیف قبل از ردیف عنوان نادیده گرفته می شود و ردیف عنوان پیش فرض روی 0 تنظیم می شود. API اجازه می دهد تا سلول های خالی را با مقادیر پیش فرض تنظیم کنید و می توانید مقادیر پیش فرض را با استفاده از unmarshal از طریق encoding تنظیم کنید.BinaryUnmarshaler
نقشه را از طریق Free 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++
}