Класс ExcelWriter
Класс ExcelWriter является контекстным менеджером для записи
объектов DataFrame и Series в файлы формата Excel.
Он поддерживает различные движки записи: openpyxl,
xlsxwriter и xlwt. При создании объекта
указывается путь к файлу, а также опционально режим записи
и дополнительные параметры движка.
Синтаксис
pd.ExcelWriter(path, engine=None, mode='w', ...)
Основные параметры конструктора:
-
path- путь к Excel-файлу (строка или объект пути); -
engine- движок для записи ('openpyxl','xlsxwriter'или'xlwt'); -
mode- режим открытия файла ('w'для перезаписи,'a'для добавления листов); -
date_format- формат для отображения дат.
Пример
Давайте запишем один DataFrame в Excel-файл:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
with pd.ExcelWriter('data.xlsx') as writer:
df.to_excel(writer, sheet_name='Sheet1')
Пример
Теперь запишем несколько листов в один файл:
import pandas as pd
df1 = pd.DataFrame({
'a': [1, 2, 3],
'b': [10, 20, 30]
})
df2 = pd.DataFrame({
'a': [4, 5, 6],
'b': [40, 50, 60]
})
with pd.ExcelWriter('multiple.xlsx') as writer:
df1.to_excel(writer, sheet_name='First')
df2.to_excel(writer, sheet_name='Second')
Пример
Давайте добавим новый лист в существующий файл:
import pandas as pd
df = pd.DataFrame({
'a': [7, 8, 9],
'b': [70, 80, 90]
})
with pd.ExcelWriter('data.xlsx', mode='a', engine='openpyxl') as writer:
df.to_excel(writer, sheet_name='NewSheet')
Обратите внимание: при добавлении листов необходимо
явно указать движок 'openpyxl', так как другие движки
не поддерживают режим добавления.
Пример
Давайте запишем DataFrame без индекса и с указанием формата дат:
import pandas as pd
from datetime import datetime
df = pd.DataFrame({
'date': [datetime(2026, 9, 9), datetime(2026, 9, 10)],
'value': [100, 200]
})
with pd.ExcelWriter('dates.xlsx', date_format='YYYY-MM-DD') as writer:
df.to_excel(writer, sheet_name='Dates', index=False)
Смотрите также
-
класс
ExcelWriter,
который используется для записи данных в Excel-файлы -
метод
save,
который сохраняет файл при использовании без контекстного менеджера -
метод
close,
который закрывает объект и сохраняет файл -
метод
to_excel,
который записывает DataFrame в Excel-файл