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.
Cells().Get(ref) / Cells().Set(ref, value).Cell.SetFormula/GetFormula เก็บสตริงสูตรในเซลล์ — จะถูกประมวลผลโดย Excel หรือ LibreOffice เมื่อเปิด ไม่ได้โดยไลบรารีในขณะบันทึก.Workbook.ExportToCSV/ImportFromCSV และ Worksheet.ToCSV/FromCSV แปลงระหว่าง XLSX และ CSV.StreamingReader.ProcessRows สตรีมแผ่นงานแถวต่อแถวผ่าน callback เพื่อประมวลผลไฟล์ขนาดใหญ่โดยไม่ต้องโหลดแผ่นงานทั้งหมดเข้าสู่หน่วยความจำ.Workbook.SetPassword/VerifyPassword ปกป้องและตรวจสอบรหัสผ่านของเวิร์กบุ๊ก.StreamingReader แทนการโหลดทั้งหมดเข้าสู่หน่วยความจำ.Font (name, size, bold, italic, color), Fill (type, color), Alignment (horizontal, vertical, wrap text) และ Border (top/bottom/left/right, color) ให้เป็น Style ที่สามารถนำกลับมาใช้ซ้ำได้ โดยใช้ Cell.SetStyleWorksheet.AddDataValidation แนบกฎการตรวจสอบแบบรายการและช่วงจำนวนเต็ม โดยแต่ละกฎจะมีหัวข้อข้อผิดพลาด, ข้อความ, และสไตล์ข้อผิดพลาดที่กำหนดเองWorksheet.AddTable/GetTable สร้างช่วง Table ที่มีโครงสร้างพร้อมแถวหัวตารางแบบเลือกได้และสไตล์ตารางที่ตั้งชื่อไว้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.
ติดตั้งด้วย go get สร้าง Workbook เข้าถึง Worksheet แรก และเขียนค่าตรงลงในเซลล์ผ่านคอลเลกชัน Cells() ก่อนบันทึก
go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26func 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 ได้รับการเผยแพร่ภายใต้ใบอนุญาต MIT ซึ่งอนุญาตให้ใช้เชิงพาณิชย์และโอเพนซอร์ส.
ใช่. สัญญาอนุญาต MIT อนุญาตให้ใช้เชิงพาณิชย์โดยไม่มีข้อผูกมัดให้เปิดเผยซอร์สโค้ดของคุณเอง ตราบใดที่ยังคงรักษาการแจ้งลิขสิทธิ์เดิมไว้
เพิ่มเป็นการพึ่งพาโมดูล Go ด้วย go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26. ต้องการ Go 1.24 หรือใหม่กว่า.
ไม่. go.mod ไม่ระบุรายการ require — ไลบรารีถูกสร้างขึ้นทั้งหมดด้วยไลบรารีมาตรฐานของ Go.
ใช่. StreamingReader.ProcessRows อ่านแผ่นงานแถวต่อแถวผ่าน callback เพื่อหลีกเลี่ยงการโหลดทั้งหมดในหน่วยความจำ.