كيفية تحميل جدول بيانات في Go

كيفية تحميل جدول بيانات في Go

Aspose.Cells FOSS لـ Go يحمل دفتر عمل .xlsx موجود في الذاكرة كـ Workbook، مما يتيح لك الوصول الكامل إلى أوراق العمل والخلايا عبر مكتبة المعايير API. ثبّت الوحدة باستخدام go get قبل البدء.

دليل خطوة بخطوة

الخطوة 1: تثبيت الحزمة

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

تحقق من إصدار الوحدة في go.mod الخاص بك بعد التثبيت.


الخطوة 2: استيراد الفئات المطلوبة

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

الخطوة 3: إنشاء وتعبئة دفتر عمل للتحميل

هذا المثال أولاً يُنشئ دفتر عمل للحصول على ملف .xlsx حقيقي للتحميل — في كودك الخاص، استبدل المسار بملف جدول بيانات موجود:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("A1", "Product")
ws.Cells().Set("B1", "Price")
ws.Cells().Set("A2", "Widget A")
ws.Cells().Set("B2", 12.99)
wb.Save("outputfiles/products.xlsx")

الخطوة 4: قراءة قيم الخلايا من ورقة العمل المحملة

الوصول إلى ورقة العمل الأولى عبر Worksheets[0] وقراءة الخلايا الفردية باستخدام Cells().Get(ref):

wb := cells_foss.NewWorkbook()
wb.Worksheets[0].Cells().Set("B2", 12.99)

ws2 := wb.Worksheets[0]
cell, err := ws2.Cells().Get("B2")
if err != nil {
	fmt.Printf("Error reading cell: %v\n", err)
	return
}
fmt.Printf("Price: %v\n", cell.Value)

الخطوة 5: تعداد جميع الخلايا المعبأة

استخدم Cells().All() عندما تحتاج إلى التكرار على كل خلية تم تعيينها، بدلاً من قراءة المراجع المعروفة واحدةً تلو الأخرى:

wb := cells_foss.NewWorkbook()
ws2 := wb.Worksheets[0]
ws2.Cells().Set("A1", "Product")

allCells := ws2.Cells().All()
for ref, c := range allCells {
	fmt.Printf("%s = %v\n", ref, c.Value)
}

المشكلات الشائعة والحلول

Get يرجع خطأ لإشارة خلية. لم يتم تعيين الإشارة في المجموعة بعد. تأكد من أن الخلية كُتبت بـ Set، أو تحقق من المُرجع error صراحةً قبل استخدام الخلية.

القيم تبدو من النوع الخطأ. Cell.Value يعكس أي نوع تم تمريره إلى Set (string, int, float64، وما إلى ذلك) — افحصها باستخدام تحويل النوع إذا كنت بحاجة إلى التفرع بناءً على نوع Go الأساسي.

الكتاب المحمل لا يحتوي على بيانات في الورقة المتوقعة. تأكد من أنك تقوم بفهرسة الإدخال الصحيح في Worksheets — قد يحتوي دفتر العمل على أكثر من ورقة عمل، وقد لا تكون البيانات المستهدفة موجودة على Worksheets[0].

الأسئلة المتكررة

هل يتطلب تحميل مصنف العمل أن يبقى الملف الأصلي موجودًا على القرص؟

نعم — Workbook يقرأ من مسار الملف الذي تقدّمه. حافظ على إمكانية الوصول إلى ملف المصدر طوال مدة التحميل.

هل يمكنني تعديل خلية بعد التحميل وحفظ التغييرات مرة أخرى؟

نعم — Cells().Set يعمل على مصنف محمّل بنفس الطريقة التي يعمل بها على مصنف جديد؛ استدعِ Save مرة أخرى لكتابة التغييرات.

هل هناك طريقة لتجنب تحميل الملف بالكامل في الذاكرة؟

نعم — استخدم StreamingReader.ProcessRows للملفات الكبيرة حيث تحتاج فقط إلى قراءة الصفوف بشكل متسلسل بدلاً من تحميل المصنف بالكامل.

انظر أيضاً

 العربية