บทนำ

Aspose.Cells FOSS สำหรับ Go เป็นไลบรารีที่เขียนด้วย Go อย่างเต็มรูปแบบสำหรับทำงานกับสเปรดชีต Excel มันเปิดเผย API สำหรับสร้างเวิร์กบุ๊กใหม่ตั้งแต่ต้น, เขียนและจัดรูปแบบค่าของเซลล์, ใช้กฎการตรวจสอบความถูกต้องของข้อมูล, สร้างตารางโครงสร้าง, ฝังรูปภาพ, และอ่านไฟล์ .xlsx ขนาดใหญ่ทีละแถว — ทั้งหมดโดยไม่ต้องพึ่งพาไลบรารี C หรือ C++ ใดๆ.

ไลบรารีนี้มีให้บริการเป็นโมดูล Go ที่ github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go และออกจำหน่ายภายใต้สัญญาอนุญาต MIT ติดตั้งโดยใช้ go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26 ไปยังโครงการ Go 1.24+ ใดก็ได้.

โพสต์นี้ครอบคลุมความสามารถหลัก: การจัดรูปแบบเซลล์, การตรวจสอบข้อมูล, ตาราง, รูปภาพ, และการอ่านแบบสตรีมมิ่ง.


คุณลักษณะสำคัญ

การจัดรูปแบบเซลล์

จัดกลุ่มการตั้งค่า Font, Fill, Alignment และ Border เข้าเป็น Style ที่สามารถนำกลับมาใช้ใหม่ได้ แล้วนำไปใช้กับเซลล์ด้วย Cell.SetStyle:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]

boldStyle := cells_foss.NewStyle()
boldStyle.Font.Bold = true
boldStyle.Font.Size = 12

cell, _ := ws.Cells().Get("A1")
cell.SetStyle(boldStyle)

Alignment ควบคุม Horizontal, Vertical และ WrapText; Border ควบคุมการมองเห็นกฎ Top, Bottom, Left, และ Right รวมถึง Color.

การตรวจสอบข้อมูล

Worksheet.AddDataValidation แนบกฎการตรวจสอบความถูกต้องไปยังช่วงเซลล์ struct DataValidation จะบรรจุกฎ Type, ค่า Formula หนึ่งหรือสองค่า, และฟิลด์ข้อความแสดงข้อผิดพลาด:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]

dv := &cells_foss.DataValidation{
	Type:             cells_foss.DataValidationTypeList,
	Formula1:         `"Apple,Banana,Cherry,Dragonfruit"`,
	AllowBlank:       true,
	ShowErrorMessage: true,
	ErrorTitle:       "Invalid Fruit",
	ErrorMessage:     "Please pick a fruit from the list.",
	ErrorStyle:       cells_foss.ErrorStyleStop,
}
ws.AddDataValidation("A2:A10", dv)

ตาราง

Worksheet.AddTable สร้าง Table โครงสร้างบนช่วงที่กำหนด, พร้อมแถวหัวตารางแบบเลือกได้และสไตล์ตารางที่ตั้งชื่อ:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("A1", "Item")
ws.Cells().Set("B1", "Qty")

tbl := ws.AddTable("A1:B2")
tbl.HasHeaderRow = true
tbl.StyleName = "TableStyleMedium6"

รูปภาพ

Worksheet.AddPicture ฝังรูปภาพ; Picture.SetAnchor(row, col) กำหนดตำแหน่งของมัน:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
imageBytes := []byte{} // populate with real image bytes before use

pic := &cells_foss.Picture{Data: imageBytes, Format: "png"}
ws.AddPicture(pic)
pic.SetAnchor(5, 0)

การสตรีมไฟล์ขนาดใหญ่

StreamingReader อ่านแผ่นงานทีละแถวผ่าน callback, ทำให้เวิร์กบุ๊กที่มีหลายพันแถวไม่จำเป็นต้องโหลดเต็มลงในหน่วยความจำเลย:

sr := cells_foss.NewStreamingReader("large_workbook.xlsx")
err := sr.ProcessRows("Sheet1", func(rowIdx int, cells map[string]string) error {
	// process one row at a time
	return nil
})
if err != nil {
	fmt.Printf("Error streaming: %v\n", err)
}

เริ่มต้นอย่างรวดเร็ว

ติดตั้งโมดูล:

go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26

เวิร์กโฟลว์ขั้นต่ำ — สร้างสมุดงาน, เขียนสองเซลล์, ทำให้ส่วนหัวเป็นตัวหนา, แล้วบันทึก:

package main

import (
	"fmt"

	cells_foss "github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26/aspose/cells_foss"
)

func main() {
	wb := cells_foss.NewWorkbook()
	ws := wb.Worksheets[0]

	ws.Cells().Set("A1", "Product")
	ws.Cells().Set("B1", "Revenue")

	boldStyle := cells_foss.NewStyle()
	boldStyle.Font.Bold = true
	for _, ref := range []string{"A1", "B1"} {
		cell, _ := ws.Cells().Get(ref)
		cell.SetStyle(boldStyle)
	}

	if err := wb.Save("report.xlsx"); err != nil {
		fmt.Printf("Error saving workbook: %v\n", err)
		return
	}
	fmt.Println("Workbook saved to report.xlsx")
}

รูปแบบที่รองรับ

รูปแบบส่วนขยายอ่านเขียน
XLSX.xlsx
CSV.csv

สมุดงาน XLSX จะถูกสร้างในหน่วยความจำด้วย NewWorkbook และบันทึกด้วย Workbook.Save. CSV มีการทำงานแบบสองทางผ่าน Workbook.ImportFromCSV และ Workbook.ExportToCSV.


โอเพนซอร์ส & การให้สิทธิ์

Aspose.Cells FOSS สำหรับ Go ถูกเผยแพร่ภายใต้สัญญาอนุญาต MIT. ไม่มีข้อจำกัดการใช้งาน, ไม่มีค่าธรรมเนียมการรัน, และไม่มีข้อกำหนดการลงทะเบียน. โค้ดต้นฉบับสามารถเข้าถึงได้ที่ github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go.

การใช้เชิงพาณิชย์ได้รับอนุญาตตามเงื่อนไขสัญญาอนุญาต MIT. หากโครงการของคุณต้องการการสนับสนุนระดับองค์กร, การครอบคลุมรูปแบบไฟล์เพิ่มเติม, หรือการบูรณาการคลาวด์, Aspose.Cells — Enterprise Product Family เป็นข้อเสนอเชิงพาณิชย์ที่แยกออกมา.


เริ่มต้นใช้งาน

แหล่งข้อมูลที่เกี่ยวข้อง