Aspose.Cells FOSS for Go היא ספרייה חינמית וקוד פתוח לעבודה עם קבצי גליון Excel ביישומי Go. התקינו אותה עם go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26 והתחילו ליצור חוברות עבודה, לקרוא ולכתוב תאים, להחיל סגנונות, להוסיף אימות נתונים ולייצא ל-CSV, ללא צורך ב-Microsoft Excel או בתלות ב-Office.
הספרייה מציגה API קטן ואידיאומטי ב-Go המנוהל סביב Workbook, Worksheet, Cells, ו-Cell. גשו לתאים דרך האוסף Cells() בעזרת Get/Set/Remove, קבצו עיצוב לאובייקטים Style שניתן להשתמש בהם מחדש שנבנו מ-Font, Fill, Alignment ו-Border, ובנו טווחי Table מובנים עם שורת כותרת וסגנון טבלה בשם. StreamingReader ייעודי קורא חוברות עבודה .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 משדר גליון עבודה שורה אחרי שורה דרך קריאה חוזרת, לעיבוד קבצים גדולים ללא טעינת כל הגיליון לזיכרון.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.SetStyle.Worksheet.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, וקבוצת סוגים תומכת קטנה מכסים יצירת גיליון אלקטרוני, עיצוב, אימות, ו-CSV/זרימת I/O. בסיס הקוד ברישיון 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 קורא גיליון עבודה שורה אחת בכל פעם באמצעות קריאת חוזר, ולכן חוברת עבודה עם אלפי שורות לעולם אינה חייבת להיות טעונה במלואה לזיכרון.
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 — הספרייה בנויה במלואה על ספריית ה-standard של Go.
כן. StreamingReader.ProcessRows קורא גיליון עבודה שורה אחרי שורה באמצעות callback, ומונע טעינה מלאה בזיכרון.