Категория

Как создать файлы XLSX с помощью Python | Spire.XLS

2025-06-30 06:04:16 zaki zou

Эффективная запись файлов Excel является неотъемлемой частью рабочих процессов на основе Python для анализа данных, составления отчетов и автоматизации. Среди множества доступных библиотек Spire.XLS for Python выделяется как мощное, независимое от Excel решение, поддерживающее сложные функции, такие как диаграммы, формулы, условное форматирование, шифрование и обработка больших наборов данных.

В этом руководстве показано, как записывать файлы XLSX с помощью Python, используя Spire.XLS for Python, и рассматриваются все детали, от базовой записи до расширенного форматирования, при этом используется надежная и готовая к использованию в корпоративной среде библиотека Excel.

Запись файлов XLSX с помощью кода Python

Как записывать файлы XLSX с помощью Spire.XLS for Python

Зачем использовать Spire.XLS for Python?

Spire.XLS for Python — это многофункциональная библиотека, которая позволяет разработчикам читать, записывать и управлять файлами Excel без необходимости установки Microsoft Office. Она создана для обеспечения производительности и гибкости, что делает ее идеальной для задач автоматизации и крупномасштабной отчетности.

Основные преимущества:

  • Универсальный API: чтение/запись .xls и .xlsx, форматирование ячеек, вставка формул, преобразование файлов и многое другое.
  • Кроссплатформенная поддержка: доступно для .NET, Java, Python и совместимо с облачными средами.
  • Расширенные функции Excel: поддержка диаграмм, сводных таблиц, условного форматирования и защиты.
  • Надежная документация и поддержка: обширная справочная информация по API, учебные пособия, форум для разработчиков и служба поддержки.
  • Доступна бесплатная версия: идеально подходит для простой обработки файлов Excel без затрат на лицензирование.

Установка Spire.XLS for Python

Вы можете установить полную или бесплатную версию Spire.XLS в зависимости от ваших требований.

Полная версия:

pip install spire.xls

Бесплатная версия (для небольших файлов и простых случаев использования):

pip install spire.xls.free

Основные шаги по записи файлов XLSX

Чтобы записывать данные в файлы Excel с помощью Python, выполните следующие основные шаги:

  • Создайте новую книгу Excel с помощью конструктора Workbook().
  • Загрузите существующий файл XLSX (необязательно) с помощью метода Workbook.LoadFromFile().
  • Добавьте или получите рабочий лист с помощью метода Workbook.Worksheets.Add() или метода get_Item().
  • Получите доступ к ячейкам с помощью метода Worksheet.Range.get_Item().
  • Запишите данные, используя свойства класса CellRange, такие как Value, Text, NumberValue и т. д.
  • Сохраните книгу с помощью метода Workbook.SaveToFile().

Пример кода базовой записи файла XLSX

  • Python
from spire.xls import Workbook, ExcelVersion

# Создайте объект Workbook
workbook = Workbook()

# Получите первый рабочий лист по умолчанию
sheet = workbook.Worksheets.get_Item(0)

# Запишите строку в ячейку B2
sheet.Range.get_Item(2, 2).Text = "Привет, мир!"

# Сохраните книгу
workbook.SaveToFile("output/BasicWorkbook.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Выходной файл XLSX:

Запись простого файла XLSX с помощью Python

Запись различных типов данных в файлы XLSX с помощью Python

Spire.XLS предлагает в классе CellRange ряд свойств, которые поддерживают запись различных типов данных непосредственно в ячейки Excel, таких как строки, значения даты и времени, логические значения и числовые значения. Это позволяет разработчикам легко записывать типизированные значения непосредственно в ячейки файла XLSX.

Поддерживаемые типы данных и их свойства

Свойство Тип значения Функция
NumberValue float Устанавливает числовое значение
Text str Устанавливает обычный текст
DateTimeValue datetime Устанавливает дату и время
BooleanValue bool Устанавливает логическое значение
Formula str Вставляет формулу
HtmlString str Вставляет текст в формате HTML
Value str Устанавливает общее значение

Пример кода – запись различных типов данных

  • Python
from spire.xls import Workbook, ExcelVersion, DateTime, HorizontalAlignType, Stream, ImageFormatType

# Создайте объект Workbook
workbook = Workbook()

# Получите первый рабочий лист по умолчанию
sheet = workbook.Worksheets.get_Item(0)

# Запишите текст в ячейку B1
sheet.Range.get_Item(1, 2).Text = "Обычный текст"
# Запишите число в ячейку B2
sheet.Range.get_Item(2, 2).NumberValue = 123456
sheet.Range.get_Item(2, 2).NumberFormat = "#,##0.00"
# Запишите дату в ячейку B3
sheet.Range.get_Item(3, 2).DateTimeValue = DateTime.get_UtcNow()
# Запишите логическое значение в ячейку B4
sheet.Range.get_Item(4, 2).BooleanValue = True
# Запишите формулу в ячейку B5
sheet.Range.get_Item(5, 2).Formula = "B2/2"
# Запишите строку HTML в ячейку B6
sheet.Range.get_Item(6, 2).HtmlString = "<p><span style='color: blue; font-size: 18px;'>Синий шрифт размером 18 пикселей</span></p>"
# Запишите обычное значение в ячейку B7
sheet.Range.get_Item(7, 2).Value = "Обычное значение"
# Вставьте изображение в ячейку B8
with open("Logo.png", "rb") as f:
    imageBytes = f.read()
stream = Stream(imageBytes)
sheet.Pictures.Add(8, 2, stream, ImageFormatType.Png)

# Установите базовое форматирование
sheet.Range.get_Item(1, 2, 8, 2).HorizontalAlignment = HorizontalAlignType.Left
sheet.AutoFitColumn(2)
for i in range(sheet.Range.Columns.Count):
    for j in range(sheet.Range.Rows.Count):
        sheet.Range.get_Item(j + 1, i + 1).HorizontalAlignment = HorizontalAlignType.Left

# Сохраните книгу в файл XLSX
workbook.SaveToFile("output/WriteDataExcelCell.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Выходной файл XLSX:

Запись различных типов данных в файл XLSX с помощью кода Python

Применение форматирования и стилей к ячейкам Excel с помощью Python

Форматирование играет ключевую роль в создании понятных и профессиональных отчетов Excel. С помощью Spire.XLS for Python вы можете настраивать внешний вид ячеек, используя шрифты, цвета, выравнивание, числовые форматы и встроенные стили. Эти инструменты помогают улучшить читаемость и представить ваши данные в отточенном и последовательном виде, что идеально подходит для отчетности и автоматизации.

В следующем примере кода показано, как форматировать рабочие листы с помощью Python.

Форматирование ячеек с помощью шрифта, цвета, границ и выравнивания

  • Python
from spire.xls import Workbook, Color, LineStyleType, BordersLineType, HorizontalAlignType

# Создайте объект Workbook
workbook = Workbook()

# Загрузите файл XLSX
workbook.LoadFromFile("Sample.xlsx")

# Получите первый рабочий лист
sheet = workbook.Worksheets.get_Item(0)

# Установите стили шрифта
# Строка заголовка
sheet.Rows.get_Item(0).Style.Font.FontName = "Times New Roman"
sheet.Rows.get_Item(0).Style.Font.Size = 14
sheet.Rows.get_Item(0).Style.Font.IsBold = True
# Строки данных
for i in range(1, sheet.Rows.Count):
    sheet.Rows.get_Item(i).Style.Font.FontName = "Arial"
    sheet.Rows.get_Item(i).Style.Font.Size = 12

# Установите цвета ячеек
# Строка заголовка
sheet.Rows.get_Item(0).Style.Color = Color.FromRgb(200, 245, 230)
# Строки данных
for i in range(1, sheet.Rows.Count):
    sheet.Rows.get_Item(i).Style.Color = Color.FromRgb(240, 255, 250)

# Установите стили границ
# Строка заголовка
sheet.Rows.get_Item(0).Style.Borders.get_Item(BordersLineType.EdgeBottom).LineStyle = LineStyleType.Thick
sheet.Rows.get_Item(0).Style.Borders.get_Item(BordersLineType.EdgeBottom).Color = Color.get_White()
# Строки данных
for i in range(1, sheet.Rows.Count):
    sheet.Rows.get_Item(i).BorderInside(LineStyleType.Thin, Color.get_Black())

# Установите выравнивание
# Строка заголовка
sheet.Rows.get_Item(0).Style.HorizontalAlignment = HorizontalAlignType.Center
# Строки данных
for i in range(1, sheet.Rows.Count):
    sheet.Rows.get_Item(i).Style.HorizontalAlignment = HorizontalAlignType.Left

# Автоматически подбирать ширину столбца
for i in range(sheet.Columns.Count):
    sheet.AutoFitColumn(i + 1)

# Сохраните файл Excel
workbook.SaveToFile("output/FormatXLSXFile.xlsx")
workbook.Dispose()

Выходной файл XLSX:

Форматирование ячеек в файлах XLSX с помощью кода Python

Установка числовых форматов для ячеек

  • Python
from spire.xls import Workbook, ExcelVersion

# Создайте экземпляр Workbook
workbook = Workbook()

# Получите первый рабочий лист
sheet = workbook.Worksheets.get_Item(0)

# Отформатируйте ячейку как число
sheet.Range.get_Item(1, 2).NumberValue = 1234567890
sheet.Range.get_Item(1, 2).NumberFormat = "[Red]#,##0;[Green]#,##0"

# Отформатируйте ячейку как дату
sheet.Range.get_Item(2, 2).NumberValue = 45562
sheet.Range.get_Item(2, 2).NumberFormat = "yyyy-mm-dd"

# Отформатируйте ячейку как время
sheet.Range.get_Item(3, 2).NumberValue = 45562
sheet.Range.get_Item(3, 2).NumberFormat = "hh:mm:ss"

# Отформатируйте ячейку как валюту
sheet.Range.get_Item(4, 2).NumberValue = 1234567890
sheet.Range.get_Item(4, 2).NumberFormat = "_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)"

# Отформатируйте ячейку как процент
sheet.Range.get_Item(5, 2).NumberValue = 0.1234567890
sheet.Range.get_Item(5, 2).NumberFormat = "0.00%"

# Отформатируйте ячейку как дробь
sheet.Range.get_Item(6, 2).NumberValue = 0.1234567890
sheet.Range.get_Item(6, 2).NumberFormat = "0.00_ ?"

# Отформатируйте ячейку как научное число
sheet.Range.get_Item(7, 2).NumberValue = 1234567890
sheet.Range.get_Item(7, 2).NumberFormat = "0.00E+00"

# Автоматически подбирать ширину столбца
for i in range(sheet.Columns.Count):
    sheet.AutoFitColumn(i + 1)

# Сохраните файл Excel
workbook.SaveToFile("output/SetNumberFormat.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Выходной файл XLSX:

Установка числовых форматов для ячеек в файлах XLSX с помощью Python

Применение встроенных стилей к ячейкам

  • Python
from spire.xls import Workbook, BuiltInStyles

# Создайте экземпляр Workbook
workbook = Workbook()

# Загрузите файл Excel
workbook.LoadFromFile("Sample.xlsx")

# Получите первый рабочий лист
sheet = workbook.Worksheets.get_Item(0)

# Примените встроенный стиль заголовка к первой строке
sheet.Rows.get_Item(0).BuiltInStyle = BuiltInStyles.Heading2

# Примените встроенный стиль нижнего колонтитула к строкам данных
for i in range(1, sheet.Rows.Count):
    sheet.Rows.get_Item(i).BuiltInStyle = BuiltInStyles.Accent2_20

# Автоматически подбирать ширину столбца
for i in range(sheet.Columns.Count):
    sheet.AutoFitColumn(i + 1)

# Сохраните файл Excel
workbook.SaveToFile("output/ApplyBuiltInStyle.xlsx")
workbook.Dispose()

Выходной файл XLSX:

Применение встроенных стилей к файлам XLSX с помощью Python

Заключение

В этом руководстве мы рассмотрели, как записывать файлы XLSX с помощью Python, используя Spire.XLS — от базовой записи до форматирования. Будь то создание отчетов, автоматизация экспорта или создание приложений, управляемых данными, Spire.XLS for Python предлагает надежное и эффективное решение для создания файлов Excel.

Получите бесплатную лицензию

Вы можете запросить 30-дневную бесплатную пробную лицензию на полную версию Spire.XLS for Python. Это позволит вам изучить все расширенные функции без ограничений в течение пробного периода.

Смотрите также