Робота з комірками
Огляд
Кожен лист надає cells колекцію, яка відображає рядки адрес у стилі Excel (наприклад "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 для запису рядка, цілого числа або числа з плаваючою комою. Прочитати те саме властивість назад, щоб отримати те, що було збережено.
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 властивість приймає будь-який скаляр Python. Бібліотека зберігає тип Python без змін; під час запису не відбувається неявне перетворення.
Використання конструктора Cell
Це Cell конструктор дозволяє створити клітинку зі значенням (і, за бажанням, формулою) в одному виразі. Призначте отриманий 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) шаблон чітко співпадає з номерами рядків Excel оскільки рядки Excel нумеруються з 1. Починаючи з start=2 резервує рядок 1 для заголовка.
Змішані типи значень
Наступний повний приклад створює невеликий набір даних з текстовим рядком заголовка, трьома рядками даних, що містять цілі числа, числа з плаваючою комою та рядки, і рядком формули, який підсумовує числові стовпці.
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")Після відкриття файлу в Excel (або будь‑якій сумісній табличній програмі), цей D стовпець і B5 / D5 комірки будуть відображати обчислені результати формульних виразів.
Поради
None значення проти порожнього рядка
Cell(None) і ws.cells["A1"].value = None створити комірку без збереженого значення — незрізнене від комірки, яка ніколи не була записана у більшості електронних таблиць читачів. Cell("") або ws.cells["A1"].value = "" створіть клітинку, яка явно містить порожній рядок, який деякі читачі та формули обробляють по‑різному (наприклад, =COUNT ігнорує клітинки з порожнім рядком так само, як і порожні клітинки, але =COUNTA рахує їх).
Рядок формули vs статичне значення
Читання .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}")Див. також
- Посилання на API: Повна документація класів і методів для
aspose.cells_foss - База знань: Практичні посібники, орієнтовані на виконання завдань
- Огляд продукту: Короткий огляд функцій та можливостей
- Початок роботи / Встановлення: pip install та налаштування
- Блог: Представляємо Aspose.Cells FOSS: Огляд бібліотеки та швидкий старт