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 והתחילו ליצור חוברות עבודה, לקרוא ולכתוב תאים, להחיל סגנונות, להוסיף אימות נתונים ולייצא ל-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.

קריאה וכתיבה של קבצי 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 משדר גליון עבודה שורה אחרי שורה דרך קריאה חוזרת, לעיבוד קבצים גדולים ללא טעינת כל הגיליון לזיכרון.
  • Password protection: Workbook.SetPassword/VerifyPassword מגן ובודק סיסמאות של חוברת העבודה.

היכן ניתן להשתמש ב-Aspose.Cells FOSS

  • צינורות נתונים: ייצא תוצאות של שאילתות מסד נתונים ישירות ל-XLSX או CSV.
  • יצירת דוחות: בנה דוחות Excel מעוצבים משירות אחורי ב-Go.
  • עיבוד קבצים גדולים: זרום דרך חוברות עבודה עם אלפי שורות באמצעות StreamingReader במקום לטעון אותן במלואן בזיכרון.
  • זרימות עבודה ETL: קרא גיליונות קלט, המר נתונים, וכתוב חוברות עבודה פלט.
  • אוטומציה של CI/CD: צור ארטיפקטים של גיליונות עבודה בתוך צינורות בנייה מבוססי 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, וקבוצת סוגים תומכת קטנה מכסים יצירת גיליון אלקטרוני, עיצוב, אימות, ו-CSV/זרימת I/O. בסיס הקוד ברישיון MIT ומאוחסן ב-GitHub.

צור חוברת עבודה וכתוב תאים

התקן באמצעות 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 קורא גיליון עבודה שורה אחת בכל פעם באמצעות קריאת חוזר, ולכן חוברת עבודה עם אלפי שורות לעולם אינה חייבת להיות טעונה במלואה לזיכרון.

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 — הספרייה בנויה במלואה על ספריית ה-standard של Go.

האם אני יכול לעבד חוברות עבודה גדולות מבלי לטעון אותן במלואן לזיכרון?

כן. StreamingReader.ProcessRows קורא גיליון עבודה שורה אחרי שורה באמצעות callback, ומונע טעינה מלאה בזיכרון.

  

משאבי תמיכה ולמידה

 עברית