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')
我犯了这个错误,但我不能改正。我调整了代码中正在发生的事情的简短表示,但很难看出真正的问题在哪里。这是
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
我怎么才能解决这个问题?
P.S.要注意错误被显示的时间是一半。
发布于 2017-10-20 01:13:21
看起来,您想要做的就是将每个DataFrame写到同一个工作表中(在最后一个表后面附加),所以我认为您可以这样写:
start_row = 1
for df in frames: # assuming they're already DataFrames
df.to_excel(writer, sheet, startrow=start_row, index=False)
start_row += len(df) + 1 # add a row for the column header?
writer.save() # we only need to save to disk at the very end!
https://stackoverflow.com/questions/46840960
复制相似问题