def multiple_dfs(sheet, row=2):
writer = pd.ExcelWriter("testing.xlsx", engine='openpyxl')
f1 = {
'user': ['Bob', 'Jane', 'Alice'],
'income': [40000, 50000, 42000],
}
f2 = {
'amount': ['Chest', 'Bras', 'Braa'],
'income': [40000, 50000, 42000]
}
frames = [f1, f2]
for f in frames:
try:
wb = load_workbook("testing.xlsx")
ws = wb.get_sheet_by_name("aaa")
writer.wb = wb
writer.sheets = dict((ws.title, ws) for ws in wb.worksheets)
row = ws.max_row + 2
except:
pass
df = pd.DataFrame(f)
df.to_excel(writer, sheet, startrow=row, index=False)
writer.save()
# writer.close()
multiple_dfs('aaa')
J'ai obtenu cette erreur, mais je ne peux pas la réparer. J'adapte cette courte représentation de ce qui se passe dans mon code, mais il est difficile de voir où se situe le vrai problème. Voici leIndexError: Au moins une feuille doit être visible
Traceback (most recent call last):
File "create_and_update_xlsx_sheets.py", line 144, in <module>
create_and_update_worksheets()
File "create_and_update_xlsx_sheets.py", line 140, in create_and_update_worksheets
writer.save()
File "/home/jeremie/.virtualenvs/NHL/lib/python3.5/site-packages/pandas/io/excel.py", line 824, in save
return self.book.save(self.path)
...
File "/home/jeremie/.virtualenvs/NHL/lib/python3.5/site-packages/openpyxl/writer/workbook.py", line 61, in get_active_sheet
raise IndexError("At least one sheet must be visible")
IndexError: At least one sheet must be visible
Comment résoudre ce problème?
P.S. Soyez conscient que l'erreur est affichée la moitié du temps.
load_workbook et ExcelWriter/to_excel sont deux façons différentes de traiter des fichiers Excel, je ne pense pas que vous pouvez les faire ensemble. On ne sait pas ce qui est cassé ici, en partie à cause du try: except: block (qui attrape toutes les exceptions ... cela ne devrait pas être nécessaire). –
Je ne comprends pas cette erreur, qu'est-ce que deux secondes? –