نظرة عامة على المميزات
نظرة عامة على الميزة
Aspose.Cells FOSS for Go’s API يركز على Workbook، Worksheet، Cells، وCell. يوضح هذا الدليل قدرات المكتبة الأخرى: التنسيق، التحقق من صحة البيانات، الجداول، الصور، والقراءات المتدفقة للملفات الكبيرة.
تنسيق الخلية
اجمع إعدادات 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
highlightStyle := cells_foss.NewStyle()
highlightStyle.Font.Color = "FFFFFFFF"
highlightStyle.Font.Bold = true
highlightStyle.Fill = &cells_foss.Fill{
Type: cells_foss.FillTypeSolid,
Color: "FF4472C4",
}
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)تتحقق صحة نطاق الأعداد الصحيحة باستخدام DataValidationTypeWhole مع Formula1/Formula2 كحد أدنى وحد أقصى.
جداول
Worksheet.AddTable ينشئ Table مُنظمًا على نطاق، مع صف رأس اختياري ونمط جدول مسمى:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
tbl := ws.AddTable("A1:F6")
tbl.HasHeaderRow = true
tbl.StyleName = "TableStyleMedium6"استرجاع جدول موجود بالاسم باستخدام Worksheet.GetTable(name).
صور
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 يقرأ ورقة عمل صفًا بصف عبر استدعاء رد، بحيث لا يلزم تحميل دفتر العمل الذي يحتوي على آلاف الصفوف بالكامل في الذاكرة:
path := "outputfiles/large_workbook.xlsx"
sr := cells_foss.NewStreamingReader(path)
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)
}نصائح وأفضل الممارسات
- استخدم
StreamingReaderبدلاً من تحميل كاملWorkbookعندما قد يحتوي الملف على آلاف الصفوف وتحتاج فقط إلى القراءة، وليس التعديل،. - أنشئ
Styleمرة واحدة وأعد استخدامها عبر العديد من الخلايا بدلاً من إنشاء واحدة جديدة لكل خلية. Cell.SetFormulaيخزن سلسلة الصيغة حرفيًا — يتم تقييمها بواسطة Excel أو LibreOffice عند الفتح، وليس بواسطة المكتبة عند الحفظ.- تحقق من قيمة الإرجاع
errorمنSaveوAddDataValidationومكالمات استيراد/تصدير CSV — قد يفشل إدخال/إخراج الجداول الإلكترونية بسبب مسارات غير صالحة أو مدخلات غير صحيحة.
المشكلات الشائعة
| Issue | Cause | إصلاح |
|---|---|---|
قيمة الخلية غير مرئية بعد Set | الإشارة إلى الورقة الخاطئة أو مرجع خلية خارج النطاق | تأكد من فهرس Worksheet وأن مرجع النمط A1 يطابق الخلية المقصودة |
| تظهر الصيغة كنص عادي بدلاً من حسابها | المكتبة تخزن سلسلة الصيغة فقط؛ لا تقوم بتقييم الصيغ | افتح الملف في Excel أو LibreOffice، اللذين يقومان بالحساب عند الفتح |
| التحقق من صحة البيانات غير مرئي في Excel | تم إضافة التحقق إلى نطاق لا يتضمن الخلية المستهدفة | تأكد من أن سلسلة النطاق (مثال: "A2:A10") تغطي الخلايا التي تتوقع التحقق منها |
FAQ
هل تقوم المكتبة بتقييم الصيغ بنفسها؟
رقم Cell.SetFormula/GetFormula تخزن سلسلة صيغة يقوم Excel أو LibreOffice بتقييمها عند فتح الملف.
هل يمكنني كتابة دفاتر عمل كبيرة باستخدام البث، وليس فقط قراءتها عبر البث؟
StreamingReader يغطي قراءات البث. كتابة دفاتر عمل كبيرة حالياً تتم عبر API القياسي في الذاكرة Workbook/Worksheet.
هل يطبق AddTable مرشحًا تلقائيًا؟
هذا غير مؤكد في واجهة API الحالية — فقط HasHeaderRow و StyleName موثّقان كحقول Table. تحقق من ملف .xlsx المُنشأ إذا كان هذا مهمًا لحالتك.
ملخص API Reference
| الفئة / الطريقة | وصف |
|---|---|
Workbook.NewWorkbook / Save | إنشاء وحفظ دفتر عمل |
Worksheet.Cells | الوصول إلى مجموعة الخلايا لورقة العمل |
Cells.Get / Set / Remove / All | قراءة، كتابة، إزالة، وعدّ الخلايا |
Cell.SetStyle / SetFormula / GetFormula | تطبيق التنسيق والصيغ على خلية |
Style, Font, Fill, Alignment, Border | إنشاء تنسيق خلايا قابل لإعادة الاستخدام |
Worksheet.AddDataValidation | إرفاق قاعدة تحقق بنطاق خلايا |
Worksheet.AddTable / GetTable | إنشاء واسترجاع نطاقات جدول مُنظمة |
Worksheet.AddPicture / Picture.SetAnchor(row, col) | تضمين وتحديد موضع الصور |
StreamingReader.ProcessRows | تدفق ورقة العمل صفًا بصف |
Workbook.ExportToCSV / ImportFromCSV | تحويل بين XLSX و CSV |
Workbook.SetPassword / VerifyPassword | حماية والتحقق من كلمة مرور المصنف |