چگونه یک صفحهگسترده را در Go بارگذاری کنیم
Aspose.Cells FOSS برای Go یک دفتر کار .xlsx موجود را بهصورت Workbook در حافظه بارگذاری میکند و از طریق API کتابخانه استاندارد، دسترسی کامل به ورقها و سلولهای آن را فراهم میسازد. قبل از شروع، ماژول را با go get نصب کنید.
راهنمای گامبهگام
مرحله ۱: نصب بسته
go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26پس از نصب، نسخه ماژول را در go.mod خود تأیید کنید.
مرحله ۲: وارد کردن کلاسهای مورد نیاز
import (
cells_foss "github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26/aspose/cells_foss"
)مرحله ۳: ایجاد و پر کردن یک Workbook برای بارگذاری
این مثال ابتدا یک workbook ایجاد میکند تا یک فایل .xlsx واقعی برای بارگذاری داشته باشد — در کد خود، مسیر یک spreadsheet موجود را جایگزین کنید:
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")مرحله ۴: خواندن مقادیر سلولها از Worksheet بارگذاریشده
از طریق Worksheets[0] به اولین worksheet دسترسی پیدا کنید و سلولهای فردی را با 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)مرحله ۵: شمارش تمام سلولهای پرشده
از 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 دارید، آن را با یک type switch بررسی کنید.
کتاب کار بارگذاریشده هیچ دادهای در برگهٔ مورد انتظار ندارد. تأیید کنید که در حال ایندکسگذاری ورودی صحیح هستید Worksheets — یک دفتر کار میتواند بیش از یک صفحهکاری داشته باشد و داده هدف ممکن است در آن نباشد Worksheets[0].
سوالات متداول
آیا بارگیری یک کتاب کار نیاز دارد که فایل اصلی هنوز روی دیسک موجود باشد؟
بله — Workbook از مسیر فایلی که ارائه میکنید میخواند. فایل منبع را برای مدت زمان بارگذاری قابل دسترسی نگه دارید.
آیا میتوانم پس از بارگذاری یک سلول را ویرایش کنم و تغییرات را ذخیره کنم؟
بله — Cells().Set بر روی یک کتاب کار بارگذاریشده به همان شیوهای که بر روی یک کتاب کار تازه ساخته شده عمل میکند؛ برای نوشتن تغییراتتان، دوباره Save را فراخوانی کنید.
آیا راهی برای جلوگیری از بارگذاری کل فایل در حافظه وجود دارد؟
بله — برای فایلهای بزرگ که فقط نیاز به خواندن سطرها به صورت متوالی دارید و نیازی به بارگذاری کل کتابکار نیست، از StreamingReader.ProcessRows استفاده کنید.