У меня есть файл Excel (Celebrities.xlsx
) с несколькими листами, и я пытаюсь изменить один лист с именем Relationships
без изменения (или возможного удаления) других листов. Вот что я сделал.
import pandas as pd
from openpyxl import load_workbook
from openpyxl.utils.dataframe import dataframe_to_rows
# Name of the celebrity that I want to modify
celeb_name = 'Terence Stamp'
wb = load_workbook('Celebrities.xlsx')
ws = wb['Relationships']
df = pd.read_excel('Celebrities.xlsx', sheet_name='Relationships')
# This part is trivial, but basically I'm replacing every null cell in 'Link' column with the word 'empty' (of that particular celebrity)
df.loc[(df['Celebrity Name'] == celeb_name) & (df['Link'].isnull()), 'Link'] = 'empty'
for r in dataframe_to_rows(df, index=True, header=True):
ws.append(r)
wb.save('new.xlsx')
Теперь скрипт выполняется без ошибок, и new.xlsx
успешно создается, но когда я пытаюсь его открыть, он выдает мне эту ошибку:
Предупреждение о загрузке документа new.xlsx: данные не могут быть загружены
полностью, потому что было превышено максимальное количество строк на листе.
И ничего не изменилось!
Я могу заверить, что эта часть кода работает отлично:
wb = load_workbook('Celebrities.xlsx')
ws = wb['Relationships']
wb.save('new.xlsx')
Полагаю, проблема в этой части кода:
for r in dataframe_to_rows(df, index=True, header=True):
ws.append(r)
Но я не знаю, как это исправить.