使用日期时间作为工作表名称为现有工作簿创建新工作表
Creating new worksheets to existing workbook using datetime as worksheet name
我有两个功能运行一个接一个。在每个函数的末尾,我 运行 第三个函数将结果写入 Excel,并将当前日期和时间作为工作表名称。目前,我的代码使用第二个函数的值覆盖当前工作表,而不是创建新工作表。我该如何解决?
now = datetime.now()
dt_string = now.strftime("%Y-%m-%d_%H_%M_%S")
def login_pass():
write_xls(status,dt_string)
def login_fail():
write_xls(status,dt_string)
def write_xls(status,dt_string):
workbook = xlsxwriter.Workbook('test.xlsx')
worksheet = workbook.add_worksheet(dt_string)
worksheet.write('A1', 'Test', header)
worksheet.write('B1', 'Status', header)
worksheet.write('A2', 'Login')
worksheet.write('B2', status)
workbook.close()
if __name__ == '__main__':
login_fail()
login_pass()
您的 write_xls
函数,从每个辅助函数调用,每次调用时都会创建一个新的 Excel 文件。
您需要创建一个“全局”Excel 文件并将其传递给您的函数以添加工作表。类似于:
now = datetime.now()
dt_string = now.strftime("%Y-%m-%d_%H_%M_%S")
def login_pass(workbook):
write_xls(workbook, status, dt_string)
def login_fail(workbook):
write_xls(workbook, status, dt_string)
def write_xls(workbook, status, dt_string):
worksheet = workbook.add_worksheet(dt_string)
...
if __name__ == '__main__':
workbook = xlsxwriter.Workbook('test.xlsx')
login_fail(workbook)
login_pass(workbook)
workbook.close()
我有两个功能运行一个接一个。在每个函数的末尾,我 运行 第三个函数将结果写入 Excel,并将当前日期和时间作为工作表名称。目前,我的代码使用第二个函数的值覆盖当前工作表,而不是创建新工作表。我该如何解决?
now = datetime.now()
dt_string = now.strftime("%Y-%m-%d_%H_%M_%S")
def login_pass():
write_xls(status,dt_string)
def login_fail():
write_xls(status,dt_string)
def write_xls(status,dt_string):
workbook = xlsxwriter.Workbook('test.xlsx')
worksheet = workbook.add_worksheet(dt_string)
worksheet.write('A1', 'Test', header)
worksheet.write('B1', 'Status', header)
worksheet.write('A2', 'Login')
worksheet.write('B2', status)
workbook.close()
if __name__ == '__main__':
login_fail()
login_pass()
您的 write_xls
函数,从每个辅助函数调用,每次调用时都会创建一个新的 Excel 文件。
您需要创建一个“全局”Excel 文件并将其传递给您的函数以添加工作表。类似于:
now = datetime.now()
dt_string = now.strftime("%Y-%m-%d_%H_%M_%S")
def login_pass(workbook):
write_xls(workbook, status, dt_string)
def login_fail(workbook):
write_xls(workbook, status, dt_string)
def write_xls(workbook, status, dt_string):
worksheet = workbook.add_worksheet(dt_string)
...
if __name__ == '__main__':
workbook = xlsxwriter.Workbook('test.xlsx')
login_fail(workbook)
login_pass(workbook)
workbook.close()