Введение

Работа с электронными таблицами Excel программно является обычным требованием в процессе обработки данных, отчетности и автоматизации рабочих потоков. аспоз-целлефос это библиотека Python с открытым исходным кодом, которая позволяет создавать, читать и изменять .xlsx рабочие книги, не зависящие от Microsoft Excel или других офисных наборов.

Выпущен в соответствии с Лицензия MIT, aspose-cells-foss обеспечивает богатую поверхность API, охватывающую значения ячеек, формулы, стилирование, диаграммы, таблицы, формы. картинки, проверку данных, комментарии, гиперссылки и условное форматирование. Библиотека требует Python 3.7 или выше и устанавливается с помощью одного устройства. pip Командование.

В этом посте мы расскажем о возможностях управления электронными таблицами, которые aspose-cells-foss привносит в ваши проекты Python. Примеры рабочего кода основаны на фактическом API.


Что входит в него?

Значения ячейки и формулы

В связи с этим Cell класс поддерживает целые числа, плавающие, строки и формулы. Вы можете установить значение непосредственно через put_value() или присвоение строки формулы к formula Собственность. FormulaEvaluator класс может оценивать формулы программируемо.

from aspose.cells_foss import Workbook, Cell

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

# Set different value types
ws.cells["A1"] = Cell(42)
ws.cells["A2"] = Cell(3.14159)
ws.cells["A3"] = Cell("Revenue Report")

# Set a formula
ws.cells["A4"] = Cell(None, "=SUM(A1:A2)")

# Check the stored values
print(ws.cells["A1"].value)    # 42
print(ws.cells["A4"].formula)  # =SUM(A1:A2)

Стилизация и форматирование

В связи с этим Style класс предоставляет методы для заполнения, границ, формата числа и выравнивания. Применить стиль к любой ячейке с Cell.apply_style().

from aspose.cells_foss import Workbook, Cell, Style

wb = Workbook()
ws = wb.worksheets[0]
ws.cells["A1"] = Cell("Total")
ws.cells["B1"] = Cell(25000)

style = Style()
style.set_fill_color("FFD9E1F2")
style.set_border("bottom", "thin", "FF000000", 1)
style.set_number_format("#,##0.00")
ws.cells["B1"].apply_style(style)

wb.save("styled_report.xlsx")

Графики

В связи с этим ChartCollection Предложения для занятий, посвященных add_line(), add_bar(), add_pie(), add_scatter(), и многие другие методы вставки диаграмм в рабочий лист. После создания, настроить график с помощью таблицы для работы с файлами . Chart название объекта, легенда, данные категории и серия.

from aspose.cells_foss import Workbook

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

# Populate data
months = ["Jan", "Feb", "Mar", "Apr"]
sales = [120, 150, 180, 200]
for i, (m, s) in enumerate(zip(months, sales), 2):
    ws.cells[f"A{i}"].value = m
    ws.cells[f"B{i}"].value = s
ws.cells["A1"].value = "Month"
ws.cells["B1"].value = "Sales"

# Create a line chart
chart = ws.charts.add_line(0, 4, 20, 12)
chart.title = "Monthly Sales"
chart.category_data = "A2:A5"
chart.n_series.add("B2:B5", category_data="A2:A5", name="Sales")
chart.show_legend = True

wb.save("sales_chart.xlsx")

Валидация данных

В связи с этим DataValidation class позволяет навязывать выпадающие списки, диапазоны чисел и правила проверки идентификации в диапозах ячеек. Свойства включают: type, operator, formula1, formula2, alert_style, error_title, и error_message.

from aspose.cells_foss import Workbook

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

# Add a dropdown validation
dv = ws.data_validations.add("B2:B100")
dv.type = 3       # List validation
dv.formula1 = '"Yes,No,Pending"'
dv.show_error_message = True
dv.error_title = "Invalid Entry"
dv.error_message = "Please select Yes, No, or Pending."

wb.save("validated.xlsx")

Автофильтров и таблиц

Применять автоматическую фильтрацию с помощью AutoFilter класс по вызову set_range() Для структурированных данных, файл “Статья” используется для определения числа. TableCollection.add() метод создает таблицы ListObject со стилями и автоматическими фильтрами.

from aspose.cells_foss import Workbook

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

# Populate header + data
ws.cells["A1"].value = "Name"
ws.cells["B1"].value = "Score"
for i, (n, s) in enumerate([("Alice", 92), ("Bob", 78), ("Carol", 95)], 2):
    ws.cells[f"A{i}"].value = n
    ws.cells[f"B{i}"].value = s

# Apply an auto-filter
ws.auto_filter.set_range(0, 0, 3, 1)

# Or create a structured table
table = ws.tables.add(0, 0, 3, 1, True, "ScoreTable")

wb.save("filtered_data.xlsx")

Защита рабочих книг и листков

Защитить рабочие книги с помощью: Workbook.protect() и отдельные таблицы с Worksheet.protect().API защиты поддерживает гранулированные разрешения, такие как возможность форматирования или вставки строк при блокировке удалений.

from aspose.cells_foss import Workbook

wb = Workbook()
ws = wb.worksheets[0]
ws.cells["A1"].value = "Protected content"

# Protect the worksheet with a password
ws.protect("secret123", format_cells=True, insert_rows=True,
           delete_columns=False, delete_rows=False)

# Protect the workbook structure
wb.protect("workbook_pass", lock_structure=True, lock_windows=False)
wb.save("protected.xlsx")

Быстрый старт .

Установка пакета из PyPI:

pip install aspose-cells-foss>=26.3.1

Создать рабочую книгу, заполнить некоторые данные и сохранить ее:

from aspose.cells_foss import Workbook, Cell, Style

# Create a new workbook
wb = Workbook()
ws = wb.worksheets[0]
ws.name = "Quarterly Report"

# Add headers with styling
header_style = Style()
header_style.set_fill_color("FF4472C4")
for col, label in enumerate(["Region", "Q1", "Q2", "Q3", "Q4"], 1):
    cell_ref = f"{chr(64 + col)}1"
    ws.cells[cell_ref] = Cell(label)
    ws.cells[cell_ref].apply_style(header_style)

# Add data rows
data = [
    ("North", 12000, 15000, 13000, 16000),
    ("South", 9000, 11000, 10500, 12000),
    ("East", 14000, 13500, 15000, 17000),
]
for r, row in enumerate(data, 2):
    for c, val in enumerate(row, 1):
        ws.cells[f"{chr(64 + c)}{r}"].value = val

# Save as XLSX
wb.save("quarterly_report.xlsx")

# Also export to CSV
wb.save_as_csv("quarterly_report.csv")

Поддерживаемые форматы

Формат:РасширениеЧитайте .Написать .
XLSX.xlsxДа , я знаю .Да , я знаю .
CSV.csvДа , я знаю .Да , я знаю .
TSV.tsvНет , нет .Да , я знаю .
JSON.jsonНет , нет .Да , я знаю .
Отмечание.mdНет , нет .Да , я знаю .

В связи с этим SaveFormat enum определяет следующие формы вывода: AUTO, XLSX, CSV, TSV, MARKDOWN, и JSON.Библиотека читает: .xlsx файлы нативным образом и может импортировать CSV-данные через Workbook.load_csv().


Открытый исходный код и лицензирование

аспоз-целлефос выделяется под воздействием Лицензия MIT, что позволяет неограниченное использование как в коммерческих, так и некоммерческих проектах. GitHub.Библиотека зависит от … pycryptodome (>= 3,15,0) и olefile (>= 0,46) для поддержки шифрования.


Начинать

Изучите полную документацию и справочный материал, чтобы начать строительство с помощью аспоса-целль-фосса: