Выравнивание по центру с помощью xlsxwriter (без условного форматирования) - PullRequest
1 голос
/ 09 октября 2019

Используя xlsxwriter, можно записать фрейм данных 'df' в Excel 'simple.xlsx', используя такой код:

import pandas as pd
writer = pd.ExcelWriter('simple.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1')
writer.save()

С помощью приведенного выше кода я вижу, что результирующий лист Excel имеет все ячейки (кроме заголовка) по умолчанию по левому краю.

Вопрос:

Как сделать так, чтобы значения ячеек Excel были выровнены по центру? Я действительно исследовал использование условного форматирования, но, поскольку мои значения ячеек представляют собой комбинацию пробелов, нулей, чисел с плавающей точкой, строк и целых чисел, мне интересно, есть ли другой способ. Существует ли более умный / быстрый способ выполнить одно или оба из следующих действий:

  • Любой способ записи кадра данных в Excel с выравниванием по центру? Или ..

  • Любой способ выравнивания по центру листа Excel (для диапазона ячеек, занятого фреймом данных) после того, как фрейм данных уже записан в Excel?

1 Ответ

2 голосов
/ 09 октября 2019

Вы можете добавить следующую строку к своему коду

df=df.style.set_properties(**{'text-align': 'center'})

Ваш полный код будет

import pandas as pd
writer = pd.ExcelWriter('simple.xlsx', engine='xlsxwriter')
df=df.style.set_properties(**{'text-align': 'center'})
df.to_excel(writer, sheet_name='Sheet1')
writer.save()
...