Разработчикам часто нужно экспортировать DataFrame Pandas в Excel. Excel является отличным инструментом для обмена и анализа отчетов. Python с Pandas делает это простым, но использование Aspose.Cells for Python дает вам больше контроля. Вы можете конвертировать DataFrame в Excel напрямую, через CSV, через JSON или даже экспортировать несколько DataFrame в один файл. В этой статье вы узнаете, как конвертировать DataFrame Pandas в Excel четырьмя методами шаг за шагом.
Почему использовать Aspose.Cells для Pandas в Excel
Pandas имеет встроенную функцию toexcel(). Она работает для базовых экспортов, но ограничена по функциям. Aspose.Cells for Python является одной из лучших библиотек Python для Excel для разработчиков и предоставляет полный движок Excel. Она позволяет вам сохранять DataFrames в Excel с высокой надежностью. Вы также можете работать с диаграммами, формулами, форматированием и большими файлами.
Эта статья покажет вам, как экспортировать DataFrame Pandas в Excel, используя Aspose.Cells разными способами.
Перед тем как начать, убедитесь, что у вас установлено следующее:
- Скачать Aspose.Cells for Python из релизов или установить с помощью pip:
pip install aspose-cells-python
- Pandas – установить с помощью pip:
pip install pandas
Эти две библиотеки позволят вам конвертировать DataFrame’ы Pandas в файлы Excel.
Метод 1: Преобразуйте DataFrame в Excel напрямую с помощью Aspose.Cells
Наиболее распространенная задача - экспортировать DataFrame Pandas в Excel напрямую. С помощью Aspose.Cells вы можете создать рабочую книгу, импортировать значения DataFrame и сохранить его в виде файла Excel.
Следуйте шагам ниже, чтобы преобразовать DataFrame в Excel:
- Build a sample dataset.
- Инициализируйте пустую книгу Excel.
- Получите доступ к первому листу в рабочей книге.
- Вставьте имена столбцов DataFrame в ячейки Excel.
- Пройдите через каждую строку в DataFrame и поместите значения в ячейки.
- Экспортируйте финальную книгу в файл Excel.
Следующий пример кода показывает, как напрямую конвертировать Pandas в Excel:
import aspose.cells as ac
import pandas as pd
# Шаг 1: Создайте образец DataFrame
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 47],
'city': ['New York', 'Paris', 'London', 'Berlin']
}
df = pd.DataFrame(data)
# Шаг 2: Создайте новую книгу
wb = ac.Workbook()
# Шаг 3: Получите первый лист рабочего документа
worksheet = wb.worksheets[0]
# Шаг 4: Получите коллекцию ячеек
cells = worksheet.cells
# Шаг 5: Запишите имена столбцов DataFrame в Excel
rowindex = 0
colindex = 0
for column in df:
cell = cells.get(rowindex, colindex)
cell.put_value(df[column].name)
colindex += 1
# Шаг 6: Запишите строки DataFrame в Excel
for index, row in df.iterrows():
rowindex += 1
colindex = 0
cell = cells.get(rowindex, colindex)
cell.put_value(row["name"])
colindex += 1
cell = cells.get(rowindex, colindex)
cell.put_value(row["age"])
colindex += 1
cell = cells.get(rowindex, colindex)
cell.put_value(row["city"])
colindex += 1
# Шаг 7: Сохраните DataFrame в Excel
wb.save("direct_df_to_excel.xlsx")

Конвертируйте DataFrame в Excel напрямую с помощью Aspose.Cells.
Этот код сохраняет DataFrame Pandas в Excel по заданному местоположению. Вы можете изменить путь, чтобы он соответствовал вашей системе.
Этот метод дает вам полный контроль над тем, как данные Pandas DataFrame записываются в Excel. Это самый прямой способ конвертировать DF в Excel с использованием Aspose.Cells.
Метод 2: Конвертировать DataFrame в Excel через CSV
Еще один простой способ - сначала сохранить ваш DataFrame Pandas в CSV, а затем преобразовать этот CSV файл в Excel с помощью Aspose.Cells. Это полезно, когда ваш процесс уже генерирует CSV-вывод, и вам все еще нужен чистый файл Excel.
Пожалуйста, выполните следующие шаги, чтобы конвертировать DataFrame в Excel через CSV:
- Build sample data.
- Сохраните DataFrame в формате CSV, используя метод
tocsv()из Pandas. - Откройте CSV в виде рабочей книги.
- Экспортируйте книгу в файл
.xlsx.
Следующий пример кода показывает, как конвертировать Pandas в Excel через CSV:
import aspose.cells as ac
import pandas as pd
# Шаг 1: Создайте пример DataFrame
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 47],
'city': ['New York', 'Paris', 'London', 'Berlin']
}
df = pd.DataFrame(data)
# Шаг 2: Сохраните DataFrame в формате CSV
df.to_csv("temp.csv", index=False)
# Шаг 3: Загрузите CSV файл с помощью Aspose.Cells
wb = ac.Workbook("temp.csv")
# Шаг 4: Сохранить как файл Excel
wb.save("df_via_csv.xlsx")
Этот метод сначала создает файл CSV, а затем конвертирует его в Excel. Он гарантирует, что ваше преобразование Pandas в Excel будет работать, даже если ваш процесс уже зависит от файлов CSV.
Используйте этот метод, когда вы хотите быстро перейти от CSV к Excel, сохраняя гибкость Pandas и Aspose.Cells.
Метод 3: Преобразование DataFrame в Excel через JSON
Многие API используют JSON. Вы также можете передать JSON в Aspose.Cells для создания листа Excel. Этот метод сначала преобразует DataFrame Pandas в JSON, а затем загружает этот JSON в Excel в виде таблицы. Это сохраняет ваш экспорт pandas в Excel чистым и надежным. Это также полезно, когда вам нужно строгий контроль над заголовками и типами данных.
Пожалуйста, следуйте приведенным ниже шагам:
- Создайте образцы данных для демо.
- Вызовите
df.tojson(orient='records'), чтобы выполнить преобразование. - Инициализируйте объект класса
Workbook()и получите первый лист. - Включите
arrayastableдля правильного импорта таблиц. - Вызовите метод
JsonUtility.importdata(), чтобы импортировать JSON в ячейки рабочего листа. - Запишите конечный файл в
.xlsx.
Следующий пример кода демонстрирует, как преобразовать DataFrame Pandas в Excel через JSON:
import pandas as pd
from aspose.cells.utility import JsonUtility, JsonLayoutOptions
from aspose.cells import Workbook, Worksheet, Cells
# Создайте пример DataFrame в pandas
data = {'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'San Francisco', 'Los Angeles']}
df = pd.DataFrame(data)
# Преобразуйте pandas DataFrame в JSON
json_string = df.to_json(orient='records')
workbook = Workbook()
# Получите первый листок.
worksheet = workbook.worksheets[0]
# Получите ячейки
cells = worksheet.cells
options = JsonLayoutOptions()
unit = JsonUtility()
# Processes as table
options.array_as_table = True
# Импортируйте данные JSON в электронную таблицу, начиная с строки 0, столбца 0
unit.import_data(json_string, cells, 0, 0, options)
# Сохранить как файл Excel
workbook.save("df_via_json.xlsx")
orient='records' создает список объектов. Каждый объект сопоставляет ключи с именами столбцов. arrayastable=True указывает Aspose.Cells обрабатывать массив как полноценную таблицу с заголовками. Импортер записывает значения в ячейки, начиная с A1. Это обеспечивает предсказуемую компоновку в Excel.
Метод 4: Экспорт нескольких DataFrame в листы Excel
Вы можете записывать более одного DataFrame Pandas в один файл Excel. Каждый DataFrame помещается на свой собственный лист. Этот метод дает вам чистый экспорт pandas в Excel для отчетов и сгруппированных таблиц.
Пожалуйста, выполните следующий шаг:
- Создайте функцию, которая записывает несколько DataFrame в несколько листов.
- Инициализируйте новую книгу.
- Добавьте лист для каждого DataFrame и назовите его из
sheetnames. - Поставьте названия столбцов в первой строке.
- Переберите кортежи DataFrame и запишите значения ячеек.
- Экспортируйте в XLSX с помощью метода
workbook.save().
Следующий пример кода показывает, как экспортировать несколько DataFrame Pandas в листы Excel:
import pandas as pd
from aspose.cells import Workbook, WorksheetCollection, SaveFormat
def write_multiple_dataframes_to_excel(dataframes, sheet_names, output_path):
"""
Write multiple DataFrames to multiple sheets in an Excel file
:param dataframes: List of pandas.DataFrame
:param sheet_names: List of sheet names (same length as dataframes)
:param output_path: Output Excel file path
"""
# Создайте пустую книгу.
workbook = Workbook()
# Дополнительно: удалите пустой лист по умолчанию, если он вам не нужен
# workbook.worksheets.removeat(0)
for df, name in zip(dataframes, sheet_names):
# Добавить новый лист
worksheet = workbook.worksheets.add(name)
cells = worksheet.cells
# Напишите заголовки столбцов
for col_idx, col_name in enumerate(df.columns):
cells.get(0, col_idx).put_value(str(col_name))
# Write row data
for row_idx, row in enumerate(df.itertuples(index=False), start=1):
for col_idx, value in enumerate(row):
cells.get(row_idx, col_idx).put_value(value)
# Сохранить как файл Excel
workbook.save(output_path, SaveFormat.XLSX)
# Создайте два DataFrame
df1 = pd.DataFrame({
"Name": ["Alice", "Bob"],
"Age": [25, 30]
})
df2 = pd.DataFrame({
"Product": ["Book", "Pen"],
"Price": [10.5, 1.99]
})
# Запишите в Excel
write_multiple_dataframes_to_excel(
dataframes=[df1, df2],
sheet_names=["People", "Products"],
output_path="MultiDataFrame.xlsx"
)

Экспортируйте несколько DataFrame Pandas в листы Excel с помощью Aspose.Cells.
Функция сопоставляет каждый DataFrame с именем листа. Она записывает заголовки в строку 0 и данные с строки 1. Aspose.Cells записывает значения в ячейки с явной типизацией. Итоговый файл XLSX сохраняет ваши таблицы ясными и готовыми к совместному использованию.
Получите бесплатную лицензию
Оцените Aspose.Cells for Python через .NET без ограничений. Запросите бесплатную временную лицензию на странице лицензий.Примените её в вашем коде, чтобы удалить ограничения на оценку. Протестируйте все функции, включая DF в Excel, графики, формулы и большие файлы.
PD to Excel: Бесплатные ресурсы
Пожалуйста, используйте эти ресурсы, чтобы углубить свои знания и улучшить свое понимание.
- Aspose.Cells Официальная Документация
- API Reference
- Бесплатные онлайн инструменты Excel
- Учебные пособия и руководства для разработчиков
Заключение
Вы научились различным способам экспорта DataFrame Pandas в Excel с помощью Aspose.Cells for Python. Вы можете сохранить DataFrame непосредственно, использовать CSV, использовать JSON или записывать несколько DataFrame в один файл. Каждый метод прост, быстр и надежен. Если вы ищете расширенные функции Excel, выходящие за пределы Pandas, Aspose.Cells — правильный выбор. Попробуйте его в вашем следующем проекте и переходите от Pandas к Excel с полным контролем.
Если у вас есть вопросы, посетите наш free support forum.Мы будем рады помочь вам.
