def create_and_update_worksheets():
"""
Add 'Player statistics' if the worksheet is not in file_name.
Otherwise, it will update the worksheet itself.
"""
os.chdir(os.path.dirname(os.path.abspath(__file__)))
writer = pd.ExcelWriter(file_name, engine='openpyxl')
row = 0
for item in worksheets['Game Schedule'].values():
multiple_dfs(item, 'Game Schedule')
for sheet in writer.sheets.values():
resize_columns(sheet)
writer.save()
writer.close()
In this actual code, writer
and row
is already defined, but I got some error if I decide to implement multiple_dfs
as :
def multiple_dfs(item, sheets):
"""
Put multiple dataframes into one xlsx sheet
"""
response = send_request(item).content
df = pd.read_csv(io.StringIO(response.decode('utf-8')))
df.to_excel(writer, sheets, startrow=row, index=False)
row = row + len(df) + 2
I got the following error for writer
, but the same thing happened with row
.
Traceback (most recent call last):
File "create_and_update_xlsx_sheets.py", line 66, in <module>
create_and_update_worksheets()
File "create_and_update_xlsx_sheets.py", line 56, in create_and_update_worksheets
multiple_dfs(item, 'Game Schedule')
File "create_and_update_xlsx_sheets.py", line 33, in multiple_dfs
df.to_excel(writer, sheets, startrow=row, index=False)
NameError: name 'writer' is not defined
How could I fix those errors? I don't want to redefine them in multiple_dfs
, but I will need to redefine them in future function as well.