Open Source Go Library สำหรับอ่านไฟล์ Excel XLSX

อ่านเอกสาร XLSX ผ่าน Open Source Go API

Go-Excel เป็นไลบรารี go แบบโอเพ่นซอร์สน้ำหนักเบาสำหรับการอ่านเอกสาร Microsoft Excel API มีวัตถุประสงค์เพื่อให้เป็นวิธีที่ง่ายและสะดวกในการอ่านไฟล์ XLSX เป็นตารางที่เหมือนฐานข้อมูล ขณะอ่านไฟล์ 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

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

API Go-Excel แบบโอเพนซอร์สมีวิธีการพื้นฐานและขั้นสูงในการอ่านไฟล์ excel คุณสามารถใช้แถวดัชนีเป็นหัวเรื่องได้ ทุกแถวก่อนแถวชื่อจะถูกละเว้น และแถวหัวเรื่องเริ่มต้นถูกตั้งค่าเป็น 0 คุณสามารถข้ามแถวว่าง และข้ามคอลัมน์ที่ใหญ่กว่าชื่อได้ API อนุญาตให้ตั้งค่าเซลล์ว่างด้วยค่าเริ่มต้น และคุณสามารถตั้งค่าเริ่มต้นได้โดยใช้ unmarshal ผ่านการเข้ารหัส BinaryUnmarshaler

อ่านแผนที่ผ่าน 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++
}
 ไทย