Изменение ширины столбца из файлов Excel

#python-2.7 #pandas #styleframe

#python-2.7 #pandas #рамка стиля

Вопрос:

У меня есть файл, подобный so, который я считываю из Excel:

 Year  Month  Day
1     2      1
2     1      2
  

Я хочу указать ширину столбца, которую распознает Excel. Я хотел бы сделать это в pandas, но я не вижу возможности. Я пытался сделать это с помощью модуля StyleFrame .

Это мой код:

 from StyleFrame import StyleFrame
import pandas as pd

df=pd.read_excel(r'P:File.xlsx')
excel_writer = StyleFrame.ExcelWriter(r'P:File.xlsx')
sf=StyleFrame(df)
sf=sf.set_column_width(columns=['Year', 'Month'], width=4.0)
sf=sf.set_column_width(columns=['Day'], width=6.00)
sf=sf.to_excel(excel_writer=excel_writer)
excel_writer.save()
  

но форматирование не сохраняется, когда я открываю новый файл.

Есть ли способ сделать это в pandas? Я бы даже использовал для этого решение на чистом Python, практически все, что работает.

Комментарии:

1. Для меня это работает нормально. Какую версию StyleFrame вы используете? import StyleFrame ; print(StyleFrame._version_)

2. версия 0.1.5 — это то, что я использую

3. Я предполагаю, что это выглядит так, как будто, когда я открываю файл Excel, ширина столбца визуально изменяется. Но когда я щелкаю правой кнопкой мыши по столбцу и выбираю column width , моя спецификация не соответствует тому, что там написано

4. Да, фактические значения ширины в Excel, похоже, на 0,62 меньше желаемого. Вы можете попытаться увеличить ширину и установить очень большую ширину, просто чтобы убедиться, что ваши изменения действительно сохраняются в файле. Я изучу это и исправлю для следующей версии 🙂

5. Да, для меня это на 0,76 меньше, чем ожидалось, но все равно соответствует.

Ответ №1:

Что касается вашего вопроса о том, как удалить заголовки, вы можете просто перейти header=False к to_excel :

sf.to_excel(excel_writer=excel_writer, header=False) .

Обратите внимание, что это все равно приведет к выделению первой строки таблицы жирным шрифтом. Если вы не хотите такого поведения, вы можете обновить до версии 0.1.6, которую я только что выпустил.