نمای کلی ویژگی‌ها

نمای کلی ویژگی‌ها

Aspose.Cells FOSS برای API در Go بر پایه 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 یک ورق کاری را ردیف به ردیف از طریق یک callback می‌خواند، به طوری که یک کتاب کاری چند هزار ردیفی هرگز نیازی به بارگذاری کامل در حافظه ندارد:

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)
}

نکات و بهترین روش‌ها

  • به‌جای بارگذاری کامل Workbook از StreamingReader استفاده کنید وقتی فایلی ممکن است هزاران ردیف داشته باشد و فقط نیاز به خواندن آن دارید، نه تغییر آن.
  • یک Style را یک‌بار بسازید و در سلول‌های متعدد دوباره استفاده کنید به‌جای ساخت یک مورد جدید برای هر سلول.
  • Cell.SetFormula رشتهٔ فرمول را به‌صورت کلمه به کلمه ذخیره می‌کند — این فرمول هنگام باز شدن توسط Excel یا LibreOffice ارزیابی می‌شود، نه توسط کتابخانه در زمان ذخیره‌سازی.
  • مقدار بازگشتی error را از Save، AddDataValidation و فراخوانی‌های وارد/صادر CSV بررسی کنید — عملیات ورودی/خروجی جدول‌محور ممکن است در مسیرهای نامعتبر یا ورودی‌های خراب شکست بخورد.

مشکلات رایج

IssueCauseرفع
مقدار سلول پس از Set قابل مشاهده نیستارجاع به برگهٔ اشتباه یا مرجع سلولی خارج از محدودهشاخص Worksheet را تأیید کنید و اطمینان حاصل کنید که مرجع به سبک A1 با سلول مورد نظر مطابقت دارد
فرمول به‌صورت متن خام نمایش داده می‌شود به‌جای محاسبهکتابخانه فقط رشتهٔ فرمول را ذخیره می‌کند؛ فرمول‌ها را ارزیابی نمی‌کندفایل را در اکسل یا LibreOffice باز کنید، که محاسبه را هنگام باز شدن انجام می‌دهند
اعتبارسنجی داده‌ها در اکسل قابل مشاهده نیستاعتبارسنجی به محدوده‌ای اضافه شد که سلول هدف را شامل نمی‌شوداطمینان حاصل کنید که رشته محدوده (مثلاً "A2:A10") شامل سلول‌هایی است که می‌خواهید اعتبارسنجی کنید

FAQ

آیا کتابخانه به‌طور خودکار فرمول‌ها را ارزیابی می‌کند؟

خیر. Cell.SetFormula/GetFormula یک رشتهٔ فرمول را ذخیره می‌کند که اکسل یا LibreOffice هنگام باز شدن فایل ارزیابی می‌کند.

آیا می‌توانم کتاب‌کارهای بزرگ را به‌صورت stream-write انجام دهم، نه فقط stream-read؟

StreamingReader خواندن‌های جریان‌دار را پوشش می‌دهد. نوشتن کتاب‌کارهای بزرگ در حال حاضر از طریق Workbook/Worksheet API استاندارد در-حافظه انجام می‌شود.

آیا 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حفاظت و بررسی رمز عبور یک کتاب‌کار

همچنین ببینید:

 فارسی