مقدمة

Aspose.Cells FOSS لـ Go هي مكتبة مكتوبة بالكامل بلغة Go للعمل مع جداول Excel. تُوفر API لإنشاء دفاتر عمل جديدة من الصفر، كتابة وتنسيق قيم الخلايا، تطبيق قواعد التحقق من البيانات، بناء جداول منسقة، تضمين الصور، وقراءة ملفات .xlsx الكبيرة صفًا بصف — كل ذلك دون أي تبعيات أصلية بلغة C أو C++.

المكتبة متاحة كوحدة Go على github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go ومُصدرة تحت رخصة MIT. قم بتثبيتها باستخدام go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26 في أي مشروع Go 1.24+.

تغطي هذه المقالة القدرات الأساسية: تنسيق الخلايا، التحقق من صحة البيانات، الجداول، الصور، والقراءات المتدفقة.


الميزات الرئيسية

تنسيق الخلايا

اجمع إعدادات Font و Fill و Alignment و Border في Style قابلة لإعادة الاستخدام، ثم طبّقها على خلية باستخدام Cell.SetStyle:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]

boldStyle := cells_foss.NewStyle()
boldStyle.Font.Bold = true
boldStyle.Font.Size = 12

cell, _ := ws.Cells().Get("A1")
cell.SetStyle(boldStyle)

Alignment يحدّد Horizontal و Vertical و WrapText؛ Border يتحكم في رؤية قواعد Top و Bottom و Left و Right بالإضافة إلى Color.

التحقق من صحة البيانات

Worksheet.AddDataValidation يرفق قاعدة تحقق إلى نطاق خلايا. هيكل DataValidation يحمل قاعدة Type، قيمة أو قيمتين Formula، وحقول رسائل الخطأ:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]

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,
}
ws.AddDataValidation("A2:A10", dv)

الجداول

Worksheet.AddTable ينشئ Table منسق على نطاق، مع صف رأس اختياري ونمط جدول مسمى:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("A1", "Item")
ws.Cells().Set("B1", "Qty")

tbl := ws.AddTable("A1:B2")
tbl.HasHeaderRow = true
tbl.StyleName = "TableStyleMedium6"

الصور

Worksheet.AddPicture يدمج صورة؛ Picture.SetAnchor(row, col) يحدد موضعها:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
imageBytes := []byte{} // populate with real image bytes before use

pic := &cells_foss.Picture{Data: imageBytes, Format: "png"}
ws.AddPicture(pic)
pic.SetAnchor(5, 0)

تدفق الملفات الكبيرة

StreamingReader يقرأ ورقة العمل صفًا بصف عبر رد استدعاء، لذا لا يحتاج دفتر العمل متعدد آلاف الصفوف إلى تحميله بالكامل في الذاكرة:

sr := cells_foss.NewStreamingReader("large_workbook.xlsx")
err := sr.ProcessRows("Sheet1", func(rowIdx int, cells map[string]string) error {
	// process one row at a time
	return nil
})
if err != nil {
	fmt.Printf("Error streaming: %v\n", err)
}

البدء السريع

قم بتثبيت الوحدة:

go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26

سير عمل بسيط — أنشئ دفتر عمل، اكتب خليتين، اجعل العنوان بالخط العريض، ثم احفظ:

package main

import (
	"fmt"

	cells_foss "github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26/aspose/cells_foss"
)

func main() {
	wb := cells_foss.NewWorkbook()
	ws := wb.Worksheets[0]

	ws.Cells().Set("A1", "Product")
	ws.Cells().Set("B1", "Revenue")

	boldStyle := cells_foss.NewStyle()
	boldStyle.Font.Bold = true
	for _, ref := range []string{"A1", "B1"} {
		cell, _ := ws.Cells().Get(ref)
		cell.SetStyle(boldStyle)
	}

	if err := wb.Save("report.xlsx"); err != nil {
		fmt.Printf("Error saving workbook: %v\n", err)
		return
	}
	fmt.Println("Workbook saved to report.xlsx")
}

الصيغ المدعومة

التنسيقالامتدادقراءةكتابة
XLSX.xlsx—✓
CSV.csv✓✓

يتم إنشاء دفاتر عمل XLSX في الذاكرة باستخدام NewWorkbook ويتم كتابتها باستخدام Workbook.Save. CSV ذو اتجاهين عبر Workbook.ImportFromCSV و Workbook.ExportToCSV.


المصدر المفتوح والترخيص

Aspose.Cells FOSS لـ Go مُصدر تحت رخصة MIT. لا توجد قيود على الاستخدام، ولا رسوم تشغيل، ولا متطلبات تسجيل. الشيفرة المصدرية متاحة على github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go.

يسمح بالاستخدام التجاري وفقًا لشروط رخصة MIT. إذا كان مشروعك يحتاج إلى دعم على مستوى المؤسسات، أو تغطية صيغ موسعة، أو تكامل سحابي، فإن Aspose.Cells — Enterprise Product Family هو عرض تجاري منفصل.


البدء

الموارد ذات الصلة