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 — عائلة منتجات المؤسسة.
Cells().Get(ref) / Cells().Set(ref, value).Cell.SetFormula/GetFormula تخزن سلسلة الصيغة في الخلية — تُقيم بواسطة Excel أو LibreOffice عند الفتح، لا تُقيم من قبل المكتبة عند حفظ الملف.Workbook.ExportToCSV/ImportFromCSV و Worksheet.ToCSV/FromCSV تحول بين XLSX و CSV.StreamingReader.ProcessRows يبث ورقة العمل صفًا بصف عبر استدعاء رد، لمعالجة الملفات الكبيرة دون تحميل الورقة بالكامل في الذاكرة.Workbook.SetPassword/VerifyPassword تحمي وتتحقق من كلمات مرور دفتر العمل.StreamingReader بدلاً من تحميلها بالكامل في الذاكرة.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/v26func 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 يتم إصداره تحت رخصة MIT، التي تسمح بالاستخدام التجاري والمصدر المفتوح.
نعم. يسمح ترخيص MIT بالاستخدام التجاري دون أي التزام بالكشف عن شفرتك المصدرية، طالما تم الاحتفاظ بإشعار حقوق النشر الأصلي.
أضفه كاعتمادية وحدة Go باستخدام go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26. يتطلب Go 1.24 أو أحدث.
لا. go.mod يعلن عدم وجود إدخالات require — المكتبة مبنية بالكامل على مكتبة Go القياسية.
نعم. StreamingReader.ProcessRows يقرأ ورقة العمل صفاً بصف عبر رد نداء، متجنباً تحميل كامل في الذاكرة.