使用xlwt创建Excel工作表时添加datetime作为名称报错如何解决?
错误原因
datetime.now()返回的是datetime.datetime类型的时间对象,不是字符串,Python不支持直接将字符串和非字符串类型做拼接操作,因此触发了TypeError报错。
额外注意:Excel工作表名称不允许包含/ \ ? * : [ ]这类特殊字符,转换时间格式时需要避开这类字符,否则后续操作也会触发报错。
解决方法
- 调用datetime对象的
strftime()方法,将时间对象转换为符合命名规则的字符串,推荐使用无特殊字符的%Y%m%d_%H%M%S格式(对应输出样例:20240520_154216,含义为年月日_时分秒) - 再将格式化后的时间字符串和工作表名前缀拼接即可
正确代码示例(对应你from datetime import datetime的导入方式):
# 先格式化时间为字符串 time_suffix = datetime.now().strftime('%Y%m%d_%H%M%S') # 拼接后创建工作表 sheet1 = wb.add_sheet('applied job list' + time_suffix)
如果你是用import datetime的方式导入的datetime模块,需要将时间生成部分调整为:
time_suffix = datetime.datetime.now().strftime('%Y%m%d_%H%M%S')
你可以根据自己的需求调整strftime的格式参数,比如仅保留日期可以用%Y%m%d,输出样式为20240520。
内容的提问来源于stack exchange,提问作者Akash
相关产品推荐
相关产品推荐

