1. ผลิตภัณฑ์
  2.   Aspose.Cells
  3.   Aspose.Cells FOSS for Go

Aspose.Cells FOSS สำหรับ Go

สร้าง, แก้ไข, และส่งออกสเปรดชีต Excel จาก Go — ฟรีและโอเพ่นซอร์ส, ไม่ต้องพึ่งพาไลบรารีภายนอกใด ๆ

ไลบรารี Go แบบโอเพนซอร์สสำหรับสเปรดชีต Excel

Aspose.Cells FOSS for Go เป็นไลบรารีฟรีและโอเพนซอร์สสำหรับทำงานกับไฟล์สเปรดชีต Excel ในแอปพลิเคชัน Go. ติดตั้งโดยใช้ go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26 แล้วเริ่มสร้าง workbook, อ่านและเขียนเซลล์, ใช้สไตล์, เพิ่มการตรวจสอบข้อมูล, และส่งออกเป็น CSV โดยไม่ต้องพึ่งพา Microsoft Excel หรือไลบรารี Office ใด ๆ.

ไลบรารีนี้เปิดเผย API ของ Go ที่เล็กและเป็นธรรมชาติซึ่งสร้างขึ้นรอบ Workbook, Worksheet, Cells, และ Cell. เข้าถึงเซลล์ผ่านคอลเลกชัน Cells() ด้วย Get/Set/Remove, จัดกลุ่มการจัดรูปแบบเป็นอ็อบเจ็กต์ Style ที่นำกลับมาใช้ได้ซึ่งสร้างจาก Font, Fill, Alignment, และ Border, และสร้างช่วง Table ที่มีโครงสร้างพร้อมแถวหัวตารางและสไตล์ตารางที่ตั้งชื่อ. StreamingReader เฉพาะทางอ่าน workbook .xlsx ทีละแถวผ่าน callback, ทำให้ไฟล์ขนาดใหญ่สามารถประมวลผลได้โดยไม่ต้องโหลดแผ่นงานทั้งหมดเข้าสู่หน่วยความจำ.

go.mod ระบุว่าไม่มีการพึ่งพาแบบภายนอก — ไลบรารีนี้สร้างขึ้นทั้งหมดบนไลบรารีมาตรฐานของ Go. มันใช้ใบอนุญาต MIT, โฮสต์บน GitHub, และติดตั้งด้วยคำสั่ง go get เพียงคำสั่งเดียว; ไม่มี cgo, ไม่มีไลบรารี Office แบบเนทีฟ, และไม่มีแพ็คเกจระบบที่ต้องกำหนดค่า. สำหรับตระกูลผลิตภัณฑ์ระดับองค์กร, ดู Aspose.Cells — Enterprise Product Family.

อ่านและเขียนไฟล์ Excel

  • Cell access: อ่านและเขียนค่าโดยใช้ Cells().Get(ref) / Cells().Set(ref, value).
  • Formulas: Cell.SetFormula/GetFormula เก็บสตริงสูตรในเซลล์ — จะถูกประมวลผลโดย Excel หรือ LibreOffice เมื่อเปิด ไม่ได้โดยไลบรารีในขณะบันทึก.
  • CSV interop: Workbook.ExportToCSV/ImportFromCSV และ Worksheet.ToCSV/FromCSV แปลงระหว่าง XLSX และ CSV.
  • Streaming reads: StreamingReader.ProcessRows สตรีมแผ่นงานแถวต่อแถวผ่าน callback เพื่อประมวลผลไฟล์ขนาดใหญ่โดยไม่ต้องโหลดแผ่นงานทั้งหมดเข้าสู่หน่วยความจำ.
  • Password protection: Workbook.SetPassword/VerifyPassword ปกป้องและตรวจสอบรหัสผ่านของเวิร์กบุ๊ก.

ที่ Aspose.Cells FOSS สามารถใช้ได้

  • การไหลข้อมูล: ส่งออกผลลัพธ์การสืบค้นฐานข้อมูลโดยตรงเป็น XLSX หรือ CSV.
  • การสร้างรายงาน: สร้างรายงาน Excel ที่มีสไตล์จากบริการแบ็กเอนด์ Go.
  • การประมวลผลไฟล์ขนาดใหญ่: สตรีมผ่านสมุดงานหลายพันแถวด้วย StreamingReader แทนการโหลดทั้งหมดเข้าสู่หน่วยความจำ.
  • เวิร์กโฟลว์ ETL: อ่านแผ่นงานเข้า, แปลงข้อมูล, และเขียนสมุดงานออก.
  • การอัตโนมัติ CI/CD: สร้างสปรีดชีตเป็นผลลัพธ์ภายใน pipeline การสร้างแบบ Go และคอนเทนเนอร์ Docker.

การจัดรูปแบบ, การตรวจสอบข้อมูล, และตาราง

  • Style objects: จัดกลุ่ม Font (name, size, bold, italic, color), Fill (type, color), Alignment (horizontal, vertical, wrap text) และ Border (top/bottom/left/right, color) ให้เป็น Style ที่สามารถนำกลับมาใช้ซ้ำได้ โดยใช้ Cell.SetStyle
  • Data validation: Worksheet.AddDataValidation แนบกฎการตรวจสอบแบบรายการและช่วงจำนวนเต็ม โดยแต่ละกฎจะมีหัวข้อข้อผิดพลาด, ข้อความ, และสไตล์ข้อผิดพลาดที่กำหนดเอง
  • Tables: Worksheet.AddTable/GetTable สร้างช่วง Table ที่มีโครงสร้างพร้อมแถวหัวตารางแบบเลือกได้และสไตล์ตารางที่ตั้งชื่อไว้
  • Pictures: Worksheet.AddPicture ฝังภาพ Picture พร้อมการกำหนดตำแหน่งด้วย SetAnchor(row, col)

ประสบการณ์ของนักพัฒนา

Aspose.Cells FOSS for Go ติดตั้งด้วยคำสั่ง go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26 เพียงคำสั่งเดียว. go.mod ไม่มีรายการ require — ไม่มีการพึ่งพาภายนอกที่ต้องตรวจสอบหรือทำ vendor.

ส่วนติดต่อ API ถูกออกแบบให้กระชับโดยเจตนา: Workbook, Worksheet, Cells, Cell, Style และประเภทสนับสนุนบางส่วนครอบคลุมการสร้างสเปรดชีต การจัดรูปแบบ การตรวจสอบความถูกต้อง และการ I/O แบบ CSV/สตรีมมิ่ง. โค้ดเบสมีใบอนุญาต MIT และโฮสต์บน GitHub.

สร้าง Workbook และเขียน Cells

ติดตั้งด้วย go get สร้าง Workbook เข้าถึง Worksheet แรก และเขียนค่าตรงลงในเซลล์ผ่านคอลเลกชัน Cells() ก่อนบันทึก

go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26
func main() {
	wb := cells_foss.NewWorkbook()
	ws := wb.Worksheets[0]
	ws.Cells().Set("A1", "Hello")
	ws.Cells().Set("B1", "World")
	ws.Cells().Set("A2", "Answer")
	ws.Cells().Set("B2", 42)
	outPath := "outputfiles/basic.xlsx"
	if err := wb.Save(outPath); err != nil {
		fmt.Printf("Error saving workbook: %v\n", err)
		return
	}
	fmt.Printf("Workbook saved to %s\n", outPath)
}

เพิ่มกฎการตรวจสอบความถูกต้องของข้อมูล

แนบการตรวจสอบประเภทรายการ (ดรอปดาวน์ของค่าที่อนุญาต) และการตรวจสอบช่วงจำนวนเต็มให้กับสองคอลัมน์ที่แตกต่างกัน โดยแต่ละคอลัมน์มีหัวข้อข้อผิดพลาดและข้อความข้อผิดพลาดของตนเอง

func main() {
	wb := cells_foss.NewWorkbook()
	ws := wb.Worksheets[0]
	ws.Cells().Set("A1", "Fruit")
	ws.Cells().Set("A2", "Apple")
	ws.Cells().Set("A3", "Banana")
	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,
	}
	if err := ws.AddDataValidation("A2:A10", dv); err != nil {
		fmt.Printf("Error: %v\n", err)
		return
	}
	dv2 := &cells_foss.DataValidation{
		Type:             cells_foss.DataValidationTypeWhole,
		Formula1:         "1",
		Formula2:         "100",
		ShowErrorMessage: true,
		ErrorTitle:       "Invalid Value",
		ErrorMessage:     "Enter a whole number between 1 and 100.",
		ErrorStyle:       cells_foss.ErrorStyleWarning,
	}
	ws.Cells().Set("B1", "Score (1-100)")
	ws.AddDataValidation("B2:B10", dv2)
	outPath := "outputfiles/data_validation.xlsx"
	if err := wb.Save(outPath); err != nil {
		fmt.Printf("Error saving workbook: %v\n", err)
		return
	}
	fmt.Printf("Workbook saved to %s\n", outPath)
}

สตรีมเวิร์กบุ๊กขนาดใหญ่แถวต่อแถว

StreamingReader อ่าน worksheet ทีละแถวผ่าน callback ทำให้ workbook ที่มีหลายพันแถวไม่จำเป็นต้องโหลดเต็มในหน่วยความจำ.

func main() {
	genPath := "outputfiles/streaming_data.xlsx"
	sr := cells_foss.NewStreamingReader(genPath)
	rowCount := 0
	var totalScore float64
	err := sr.ProcessRows("Sheet1", func(rowIdx int, cells map[string]string) error {
		rowCount++
		if rowIdx == 1 {
			fmt.Printf("  Header: %v\n", cells)
			return nil
		}
		if score, ok := cells["C"+fmt.Sprint(rowIdx)]; ok {
			var s float64
			fmt.Sscanf(score, "%f", &s)
			totalScore += s
		}
		return nil
	})
	if err != nil {
		fmt.Fprintf(os.Stderr, "Error streaming: %v\n", err)
		os.Exit(1)
	}
	fmt.Printf("Streamed %d rows (header + %d data rows)\n", rowCount, rowCount-1)
}

คำถามที่พบบ่อย

โมเดลการให้สิทธิ์ใช้สำหรับ Aspose.Cells FOSS for Go คืออะไร?

Aspose.Cells FOSS for Go ได้รับการเผยแพร่ภายใต้ใบอนุญาต MIT ซึ่งอนุญาตให้ใช้เชิงพาณิชย์และโอเพนซอร์ส.

ฉันสามารถใช้ในผลิตภัณฑ์เชิงพาณิชย์ได้หรือไม่?

ใช่. สัญญาอนุญาต MIT อนุญาตให้ใช้เชิงพาณิชย์โดยไม่มีข้อผูกมัดให้เปิดเผยซอร์สโค้ดของคุณเอง ตราบใดที่ยังคงรักษาการแจ้งลิขสิทธิ์เดิมไว้

ฉันจะติดตั้ง Aspose.Cells FOSS for Go อย่างไร?

เพิ่มเป็นการพึ่งพาโมดูล Go ด้วย go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26. ต้องการ Go 1.24 หรือใหม่กว่า.

มีการพึ่งพาภายนอกหรือไม่?

ไม่. go.mod ไม่ระบุรายการ require — ไลบรารีถูกสร้างขึ้นทั้งหมดด้วยไลบรารีมาตรฐานของ Go.

ฉันสามารถประมวลผลเวิร์กบุ๊กขนาดใหญ่โดยไม่ต้องโหลดทั้งหมดเข้าสู่หน่วยความจำได้หรือไม่?

ใช่. StreamingReader.ProcessRows อ่านแผ่นงานแถวต่อแถวผ่าน callback เพื่อหลีกเลี่ยงการโหลดทั้งหมดในหน่วยความจำ.

  

ทรัพยากรสนับสนุนและการเรียนรู้

 ภาษาไทย