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 صفًا بصف عبر رد اتصال، وبالتالي يمكن معالجة الملفات الكبيرة دون تحميل الورقة بأكملها في الذاكرة.

go.mod لا يعلن عن أي تبعيات خارجية — المكتبة مبنية بالكامل على مكتبة Go القياسية. هي مرخصة تحت رخصة MIT، مستضافة على GitHub، وتُثبت بأمر go get واحد؛ لا cgo، ولا مكتبات Office أصلية، ولا حزم نظامية للتكوين. لعائلة منتجات المؤسسة، راجع Aspose.Cells — عائلة منتجات المؤسسة.

قراءة وكتابة ملفات Excel

  • الوصول إلى الخلايا: قراءة وكتابة القيم باستخدام Cells().Get(ref) / Cells().Set(ref, value).
  • الصيغ: Cell.SetFormula/GetFormula تخزن سلسلة الصيغة في الخلية — تُقيم بواسطة Excel أو LibreOffice عند الفتح، لا تُقيم من قبل المكتبة عند حفظ الملف.
  • التفاعل مع CSV: Workbook.ExportToCSV/ImportFromCSV و Worksheet.ToCSV/FromCSV تحول بين XLSX و CSV.
  • القراءات المتدفقة: StreamingReader.ProcessRows يبث ورقة العمل صفًا بصف عبر استدعاء رد، لمعالجة الملفات الكبيرة دون تحميل الورقة بالكامل في الذاكرة.
  • حماية كلمة المرور: Workbook.SetPassword/VerifyPassword تحمي وتتحقق من كلمات مرور دفتر العمل.

أين يمكن استخدام Aspose.Cells FOSS

  • Data pipelines: تصدير نتائج استعلام قاعدة البيانات مباشرةً إلى XLSX أو CSV.
  • Report generation: بناء تقارير Excel ذات تنسيق من خدمة خلفية مكتوبة بـ Go.
  • Large-file processing: تدفق عبر دفاتر عمل تحتوي على آلاف الصفوف باستخدام StreamingReader بدلاً من تحميلها بالكامل في الذاكرة.
  • ETL workflows: قراءة أوراق الإدخال، تحويل البيانات، وكتابة دفاتر العمل الناتجة.
  • CI/CD automation: إنشاء مخرجات جداول البيانات داخل خطوط بناء مبنية على Go وحاويات Docker.

التنسيق، التحقق من صحة البيانات، والجداول

  • كائنات النمط: تجميع Font (الاسم، الحجم، غامق، مائل، اللون)، Fill (النوع، اللون)، Alignment (أفقي، عمودي، التفاف النص)، و Border (أعلى/أسفل/يسار/يمين، اللون) في 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 — لا توجد تبعيات خارجية للتحقق منها أو لتضمينها.

واجهة API مصممة لتكون مدمجة عمدًا: Workbook، Worksheet، Cells، Cell، Style، وقليل من الأنواع الداعمة تغطي إنشاء الجداول الحسابية، والتنسيق، والتحقق، و CSV/streaming 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 — المكتبة مبنية بالكامل على مكتبة Go القياسية.

هل يمكنني معالجة دفاتر عمل كبيرة دون تحميلها بالكامل في الذاكرة؟

نعم. StreamingReader.ProcessRows يقرأ ورقة العمل صفاً بصف عبر رد نداء، متجنباً تحميل كامل في الذاكرة.

  

الدعم وموارد التعلم

 العربية