1. منتجات
  2.   جدول
  3.   GO
  4.   Go-Excel
 
  

مكتبة Open Source Go لقراءة ملفات Excel XLSX

اقرأ مستندات XLSX عبر Open Source Go API.

Go-Excel هي مكتبة مفتوحة المصدر وخفيفة الوزن لقراءة مستندات Microsoft Excel. تهدف API إلى توفير طريقة بسيطة وسهلة لقراءة ملفات XLSX كجدول يشبه db. أثناء قراءة ملف XLSX ، تتوقع API أن يكون الصف الأول هو صف العنوان والصفوف كصفوف بيانات.

توفر API مجموعة من العلامات للتعامل مع مستندات Excel. تعيِّن علامة العمود اسم الحقل في صف العنوان ، وتعين العلامة الافتراضية القيمة الافتراضية عندما لا يتم تحديد أي قيمة ، وتقوم العلامة المقسمة بتقسيم سلسلة وتحويلها إلى شريحة ، وتتخطى علامة الصفري قيمة المسح في الخلية وتتطلب تقوم العلامة بإرجاع خطأ إذا كان عنوان العمود غير موجود في Excel.

Previous Next

الشروع في العمل مع Go-Excel

الطريقة الموصى بها لتثبيت Go-Excel في مشروعك هي باستخدام GitHub . الرجاء استخدام الأمر التالي للتثبيت السلس.

قم بتثبيت go-excel عبر GitHub

go get github.com/szyhf/go-excel 

قراءة ملف Excel عبر Free Go API

تتيح مكتبة Go-Excel مفتوحة المصدر لمبرمجي الكمبيوتر قراءة ملفات Excel عبر GO. أثناء قراءة ملف Excel ، يمكنك استخدام اسم الحقل كاسم العمود الافتراضي ويمكنك تعيين عمود في أكثر من حقل واحد. بعد تحديد خيارات القراءة ، يمكنك فتح اتصال جديد بملف Excel باستخدام طريقة excel.NewConnector () بنجاح ، والاتصال بملف excel يمكنك قراءة محتواه باستخدام طريقة conn.NewReader ().

قارئ بسيط لقراءة ملف Excel في 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
}

طرق متقدمة لقراءة Excel عبر GO API

يوفر Go-Excel API مفتوح المصدر طرقًا أساسية ومتقدمة لقراءة ملفات Excel. يمكنك استخدام صف الفهرس كعنوان ، وسيتم تجاهل كل صف قبل صف العنوان وتعيين صف العنوان الافتراضي إلى 0. يمكنك تخطي الصفوف الفارغة وتخطي الأعمدة الأكبر من العنوان. تسمح واجهة برمجة التطبيقات بتعيين الخلايا الفارغة بقيم افتراضية ويمكنك تعيين القيم الافتراضية باستخدام unmarshal عبر الترميز.

اقرأ الخريطة عبر 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++
}
 عربي