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