کار با سلول‌ها

بررسی کلی

هر کاربرگ یک cells مجموعه‌ای که رشته‌های آدرس به سبک اکسل را نگاشت می‌کند (مانند "A1", "B3") Cell اشیاء. شما می‌توانید به‌صورت مستقیم با زیرنویس به یک سلول دسترسی پیدا کنید:

from aspose.cells_foss import Workbook, Cell

workbook = Workbook()
ws = workbook.worksheets[0]

##Access a cell by address
cell = ws.cells["A1"]

مقدارها، فرمول‌ها و اطلاعات سبک همه بر روی Cell شیء. می‌توانید یا می‌توانید یک سلول را به‌صورت درجا تغییر دهید با نوشتن به .value یا .formula ویژگی،, یا سلول را به‌طور کامل جایگزین کنید با اختصاص یک Cell نمونه به آدرس.


خواندن و نوشتن مقادیر

اختصاص به cell.value برای نوشتن یک رشته، عدد صحیح یا عدد اعشاری. همان را بخوانید. property را برای بازیابی هر آنچه ذخیره شده بود برمی‌گرداند.

from aspose.cells_foss import Workbook

workbook = Workbook()
ws = workbook.worksheets[0]

##Write a string
ws.cells["A1"].value = "Hello, world"

##Write an integer
ws.cells["A2"].value = 42

##Write a float
ws.cells["A3"].value = 3.14159

##Read values back
print(ws.cells["A1"].value)   # Hello, world
print(ws.cells["A2"].value)   # 42
print(ws.cells["A3"].value)   # 3.14159

workbook.save("values_demo.xlsx")

این .value property هر Python scalar را می‌پذیرد. کتابخانه نوع Python به همان شکل؛ هیچ تبدیل ضمنی‌ای در زمان نوشتن رخ نمی‌دهد.


استفاده از سازنده Cell

این Cell constructor به شما امکان می‌دهد یک cell با یک value (و به‌صورت اختیاری یک formula) در یک عبارت واحد. مقداردهی به نتیجه​ Cell اعتراض به زیرنویس آدرس برای قرار دادن آن در برگه.

from aspose.cells_foss import Workbook, Cell

workbook = Workbook()
ws = workbook.worksheets[0]

##Integer cell
ws.cells["A1"] = Cell(42)

##String cell
ws.cells["A2"] = Cell("Revenue")

##Float cell
ws.cells["A3"] = Cell(3.14)

##Explicitly empty cell (no value, no formula)
ws.cells["A4"] = Cell(None)

workbook.save("cell_constructor_demo.xlsx")

اولین آرگومان موقعیتی برای Cell مقدار است. وقتی شما پاس می‌دهید None این سلول بدون مقدار ذخیره می‌شود، که زمانی مفید است که قصد داشته باشید یک فرمول تنظیم کنید به‌صورت جداگانه یا می‌خواهید یک سلول به‌وضوح خالی داشته باشید به‌جای یک سلول غایب.


سلول‌های فرمولی

یک سلول فرمولی رشته‌ی عبارت سازگار با Excel را همراه (یا به‌جای) یک مقدار ثابت ذخیره می‌کند. دو روش برای ایجاد آن وجود دارد.

از طریق سازنده Cell — عبور None به عنوان مقدار و رشته فرمول به عنوان آرگومان دوم:

from aspose.cells_foss import Workbook, Cell

workbook = Workbook()
ws = workbook.worksheets[0]

ws.cells["A1"] = Cell(10)
ws.cells["A2"] = Cell(20)
ws.cells["A3"] = Cell(30)

##Formula via constructor: value=None, formula="=SUM(A1:A3)"
ws.cells["A4"] = Cell(None, "=SUM(A1:A3)")

workbook.save("formula_constructor.xlsx")

از طریق .formula ویژگی — ویژگی را بر روی یک سلول موجود تنظیم کنید:

from aspose.cells_foss import Workbook, Cell

workbook = Workbook()
ws = workbook.worksheets[0]

for i, v in enumerate([5, 10, 15, 20, 25], start=1):
    ws.cells[f"A{i}"].value = v

ws.cells["B1"].formula = "=AVERAGE(A1:A5)"

workbook.save("formula_property.xlsx")

مرجع سریع فرمول‌های رایج

هدفرشته فرمول
جمع یک بازه=SUM(A1:A10)
میانگین یک بازه=AVERAGE(A1:A10)
بیشترین مقدار=MAX(A1:A10)
کمترین مقدار=MIN(A1:A10)
شمارش غیر خالی=COUNT(A1:A10)
مقدار شرطی=IF(A1>0,"Positive","Non-positive")
جستجوی یک مقدار=VLOOKUP(D1,A1:B10,2,FALSE)
الحاق رشته‌ها=CONCATENATE(A1," ",B1)

رشته‌های فرمول باید با =. کتابخانه آن‌ها را به‌صورت دقیق ذخیره می‌کند؛ Excel (یا یک خواننده سازگار) هنگام باز شدن فایل، عبارت را ارزیابی می‌کند.


تکرار بر روی داده‌ها

از یک حلقه استاندارد Python برای پر کردن یک ستون یا ردیف از یک لیست استفاده کنید:

from aspose.cells_foss import Workbook

workbook = Workbook()
ws = workbook.worksheets[0]

monthly_sales = [12_500, 14_200, 9_800, 17_600, 21_100, 18_400]

##Write a header
ws.cells["A1"].value = "Monthly Sales"

##Write data starting at row 2 (index 1 → address A2)
for i, val in enumerate(monthly_sales, start=2):
    ws.cells[f"A{i}"].value = val

##Write a SUM formula below the data
last_row = 1 + len(monthly_sales)  # row index of last data cell
ws.cells[f"A{last_row + 1}"].formula = f"=SUM(A2:A{last_row})"

workbook.save("monthly_sales.xlsx")

این enumerate(iterable, start=N) الگو به‌صورت تمیز بر شماره‌های ردیف اکسل نگاشته می‌شود چون ردیف‌های اکسل از ۱ شروع می‌شوند. شروع از start=2 ردیف ۱ را برای یک سرصفحه.


انواع مقدارهای ترکیبی

مثال کامل زیر یک مجموعه داده کوچک ایجاد می‌کند که شامل یک ردیف سرصفحه متنی، سه ردیف داده حاوی اعداد صحیح، اعشاری و رشته‌ها، و یک ردیف فرمولی است که ستون‌های عددی را خلاصه می‌کند.

from aspose.cells_foss import Workbook, Cell

workbook = Workbook()
ws = workbook.worksheets[0]

##--- Header row ---
ws.cells["A1"].value = "Product"
ws.cells["B1"].value = "Units Sold"
ws.cells["C1"].value = "Unit Price"
ws.cells["D1"].value = "Revenue"

##--- Data rows ---
##Row 2
ws.cells["A2"] = Cell("Widget A")
ws.cells["B2"] = Cell(120)
ws.cells["C2"] = Cell(9.99)
ws.cells["D2"] = Cell(None, "=B2*C2")

##Row 3
ws.cells["A3"] = Cell("Widget B")
ws.cells["B3"] = Cell(85)
ws.cells["C3"] = Cell(14.50)
ws.cells["D3"] = Cell(None, "=B3*C3")

##Row 4
ws.cells["A4"] = Cell("Widget C")
ws.cells["B4"] = Cell(200)
ws.cells["C4"] = Cell(4.75)
ws.cells["D4"] = Cell(None, "=B4*C4")

##--- Summary row ---
ws.cells["A5"].value = "TOTAL"
ws.cells["B5"] = Cell(None, "=SUM(B2:B4)")
ws.cells["D5"] = Cell(None, "=SUM(D2:D4)")

workbook.save("mixed_types_dataset.xlsx")
print("Saved mixed_types_dataset.xlsx")

پس از باز کردن فایل در اکسل (یا هر برنامهٔ صفحه‌گستردهٔ سازگار)،, این D ستون و B5 / D5 سلول‌ها نتایج ارزیابی‌شده را نمایش خواهند داد عبارات فرمول.


نکات

None مقدار در مقابل رشته خالی

Cell(None) و ws.cells["A1"].value = None یک سلول بدون مقدار ذخیره‌شده ایجاد کنید مقدار — غیرقابل تمایز از سلولی که در اکثر برنامه‌های صفحه‌گسترده هرگز نوشته نشده است خوانندگان. Cell("") یا ws.cells["A1"].value = "" یک سلول ایجاد کنید که صریحاً یک رشته خالی را شامل می‌شود، که برخی خواننده‌ها و فرمول‌ها به‌طور متفاوتی با آن رفتار می‌کنند (به عنوان مثال،, =COUNT سلول‌های رشته خالی را به همان روشی که سلول‌های خالی را نادیده می‌گیرد، نادیده می‌گیرد سلول‌ها، اما =COUNTA آنها را می‌شمارد).

رشته فرمول در مقابل مقدار ثابت

خواندن .value از یک سلول فرمول برمی‌گرداند None (یا آخرین مقدار کش‌شده اگر یکی قبل از اختصاص فرمول تنظیم شده بود). خواندن .formula برمی‌گرداند رشتهٔ عبارت. اگر نیاز دارید بین یک سلول فرمول و یک سلول مقدار ساده در زمان اجرا تمایز قائل شوید، بررسی کنید آیا ws.cells["A1"].formula خالی نیست:

cell = ws.cells["A1"]
if cell.formula:
    print(f"Formula: {cell.formula}")
else:
    print(f"Value: {cell.value}")

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

 فارسی