کار با مدیریت صفحات گسترده

کار با مدیریت صفحات گسترده

کار با مدیریت صفحه‌گسترده‌ها

این راهنما عملیات روزانه ساخت و ویرایش صفحه‌گسترده‌ها را قدم به قدم توضیح می‌دهد: ایجاد کتاب‌کار، نوشتن مقادیر سلول‌ها، افزودن فرمول‌ها، ساخت جدول‌ها و صادرات به CSV.


ایجاد یک کتاب‌کار و نوشتن سلول‌ها

NewWorkbook() یک کتاب‌کار را برمی‌گرداند که یک ورق کاری از پیش موجود دارد. مقادیر را با Cells().Set(ref, value) بنویسید:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]

ws.Cells().Set("A1", "Item")
ws.Cells().Set("B1", "Category")
ws.Cells().Set("C1", "Price")
ws.Cells().Set("A2", "Widget A")
ws.Cells().Set("B2", "Gadgets")
ws.Cells().Set("C2", 12.99)

wb.Save("outputfiles/inventory.xlsx")

خواندن سلول‌ها

Cells().Get(ref) *Cell را برای یک مرجع به‌همراه خطا در صورت نامعتبر بودن مرجع برمی‌گرداند:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("C2", 12.99)

cell, err := ws.Cells().Get("C2")
if err != nil {
	fmt.Printf("Error: %v\n", err)
	return
}
fmt.Printf("C2 = %v\n", cell.Value)

از Cells().All() برای شمارش هر سلول پرشده در مجموعه استفاده کنید وقتی نیاز به پیمایش کل ورق دارید.

افزودن یک فرمول

Cell.SetFormula یک رشته فرمول را در یک سلول ذخیره می‌کند. ابتدا سلول را با Set ایجاد کنید، سپس فرمول را وصل کنید — فرمول هنگام باز شدن توسط Excel یا LibreOffice ارزیابی می‌شود، نه توسط کتابخانه:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]

ws.Cells().Set("D2", nil)
cell, _ := ws.Cells().Get("D2")
cell.SetFormula("C2*2")

ساخت یک جدول بر روی داده‌ها

به محض اینکه بازه داده‌های شما پر شد، Worksheet.AddTable آن را به یک جدول ساختار یافته و نام‌دار تبدیل می‌کند:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("A1", "Item")
ws.Cells().Set("A2", "Widget A")

tbl := ws.AddTable("A1:C2")
tbl.HasHeaderRow = true
tbl.StyleName = "TableStyleMedium6"
fmt.Printf("Created table %q covering %s\n", tbl.Name, tbl.Range)

صادرات به CSV

Workbook.ExportToCSV ایندکس شیت داده‌شده را به یک فایل CSV می‌نویسد با جداکننده‌ای که شما انتخاب می‌کنید:

wb := cells_foss.NewWorkbook()

if err := wb.ExportToCSV(0, "outputfiles/inventory.csv", ','); err != nil {
	fmt.Fprintf(os.Stderr, "Error exporting: %v\n", err)
	os.Exit(1)
}

در جهت معکوس، Workbook.ImportFromCSV(path, sheetName, delimiter) یک فایل CSV را به یک شیت نام‌دار می‌خواند.

حذف یک سلول

Cells().Remove(ref) مقدار یک سلول را پاک می‌کند:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("A2", "Widget A")

if err := ws.Cells().Remove("A2"); err != nil {
	fmt.Printf("Error removing cell: %v\n", err)
}

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

  • یک سلول را با Set ایجاد کنید قبل از اینکه SetFormula را روی آن فراخوانی کنید — SetFormula بر روی یک *Cell موجود عمل می‌کند، نه یک رشته مرجع خالص.
  • هنگام استخراج یک کتاب کار که شامل چندین برگه کاری است، پارامتر اندیس برگه ExportToCSV تعیین می‌کند کدام برگه کاری استخراج شود — اندیس 0 اولین برگه کاری است.
  • از Cells().All() برای تکرار با بار خواندن بالا بر روی کل برگه استفاده کنید به جای این که Get را در یک حلقه برای هر مرجع ممکن فراخوانی کنید.

مشکلات رایج

IssueCauseرفع
SetFormula هیچ تأثیری نداردبر روی یک ارجاع سلول فراخوانی شد که هرگز ابتدا با Set ایجاد نشده بودبرای ایجاد سلول، ws.Cells().Set(ref, nil) را فراخوانی کنید، سپس Get کنید و SetFormula را فراخوانی کنید
خروجی CSV خالی است یا برگهٔ اشتباهاندیس کاربرگ نادرست به ExportToCSV ارسال شدتأیید کنید که اندیس با موقعیت کاربرگ موردنظر در Workbook.Worksheets همخوانی دارد
Get یک خطا برمی‌گرداندمرجع سلول در مجموعه وجود نداردتأیید کنید که مرجع قبلاً با Set تنظیم شده است، یا حالت «not found» را به‌صورت صریح مدیریت کنید

FAQ

آیا Cells().Remove تمام سطر یا ستون را حذف می‌کند؟

خیر — مقدار یک سلول را در مرجع داده شده پاک می‌کند.

آیا می‌توانم جدولی بر روی بازه‌ای بسازم که قبلاً یک ستون فرمول دارد؟

بله — AddTable بر روی بازه سلولی همان‌گونه که نوشته شده عمل می‌کند؛ فرمول‌های موجود در بازه حفظ می‌شوند.


API Reference خلاصه

کلاس / متدتوضیح
Workbook.NewWorkbookیک کتاب‌کار جدید با یک صفحه‌کار ایجاد کنید
Cells.Set / Get / Remove / Allنوشتن، خواندن، حذف و فهرست کردن سلول‌ها
Cell.SetFormula / GetFormulaپیوست کردن و خواندن یک رشته فرمول
Worksheet.AddTableساخت یک جدول ساختار یافته بر روی بازه‌ای از سلول‌ها
Workbook.ExportToCSV / ImportFromCSVتبدیل بین XLSX و CSV

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

 فارسی