Как отформатировать ячейки Excel, используя read_excel и to_excel? - PullRequest
0 голосов
/ 30 октября 2018

В настоящее время у меня есть файл excel с именем «excel example.xlsx». У меня есть 2 листа в этом файле.

Первый лист называется «Домашняя страница», а второй - «Лист2».

Лист 1: На первом листе «Дом» в первой строке есть предложение «Это тест», начиная с ячейки A1 и заканчивая столбцом D1.

Вот пример таблицы Home:

Cell: A1 "Этот" Cell: B1 "является" Cell: C1 "a" Cell: D1 "test"

Лист 2:

На втором листе «Лист2» ​​я хотел бы напечатать следующие данные:

Cell: A1 "col1" Cell: B1 "col2" Cell: A2 "21" Cell: B1 "23" Cell: A3 "22" Cell: B3 "24"

Вот мой код:

import pandas as pd
from pandas import read_excel

my_sheet_name = 'Home' 
df1 = read_excel('excel example.xlsx', sheet_name = 'Home')    


x = {'col1': [21, 22], 'col2': [23, 24]}
df2 = pd.DataFrame(data=x)


writer = pd.ExcelWriter('excel example.xlsx')
df1.to_excel(writer, 'Home')
df2.to_excel(writer, 'Sheet2')
writer.save()

Этот код работает нормально, но есть некоторые проблемы с форматированием.

Выпуск 1:

На листе «На главную» напечатано предложение «Это тест», начиная с ячейки B1, а не с A1, как я хотел. Ячейка А1 пуста.

Выпуск 2:

Предложение «Это тест» имеет границы. Я хотел бы, чтобы границы были удалены, если это возможно.

Выпуск 3:

Предложение «Это тест» выделено жирным шрифтом. Я хотел бы удалить жирный формат, если это возможно.

Я новичок в кодировании и буду признателен за любую помощь, которую смогу получить. Спасибо!

1 Ответ

0 голосов
/ 30 октября 2018

Из документации Я изменил аргументы, переданные в to_excel, чтобы включить index=False, чтобы решить возникшую проблему 1, поскольку pandas использует первый столбец для индекса и интерпретирует первую строку Excel файл в качестве заголовка (отсюда жирный шрифт и границы при перезаписи в файл Excel). Чтобы решить проблемы 2 и 3, я прочитал первый лист с добавлением header=None, чтобы заголовки столбцов не были выделены жирным шрифтом, и заново сделал данные, загруженные в df2, чтобы также не иметь заголовков

Последний код, который работал для меня, был:

import pandas as pd
from pandas import read_excel

my_sheet_name = 'Home' 
df1 = read_excel('excel example.xlsx', sheet_name = 'Home', header=None)    


x = {'0': ['col1', 21, 22], '1': ['col2', 23, 24]}
df2 = pd.DataFrame(data=x)


writer = pd.ExcelWriter('excel example.xlsx')
df1.to_excel(writer, 'Home', index=False)
df2.to_excel(writer, 'Sheet2', index=False)
writer.save()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...