我有一个包含多张工作表的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)
但是我不知道如何解决它。
答案 0 :(得分:2)
您在问题中说没有任何修改。但是有。您的代码遍历数据框,并在每次遍历过程中向工作表添加新行。限制为1,048,576行,Excel告诉您修改后的工作表超出了该限制。