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 — Enterprise Product Family.
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 (name, size, bold, italic, color)، Fill (type, color)، Alignment (horizontal, vertical, wrap text) و Border (top/bottom/left/right, color) را در یک 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/جریان را پوشش میدهند. کد منبع تحت مجوز MIT است و در GitHub میزبانی میشود.
Install with go get, create a Workbook, access the first Worksheet, and write values directly to cells through the Cells() collection before saving.
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 یک برگه کاری را بهصورت ردیف به ردیف از طریق یک callback میخواند، بنابراین یک کتابکار چند هزار ردیفه نیازی به بارگذاری کامل در حافظه ندارد.
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 یک برگه کاری را ردیف به ردیف از طریق یک کالبک میخواند و از بارگذاری کامل در حافظه جلوگیری میکند.