You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将datetime日期时间列表写入Excel?解决代码覆盖与迭代错误

解决方案:将datetime列表写入Excel对应行列

问题根源分析

你遇到的两个核心问题:

  • 最初的循环里每次调用write_row都传入了整个列表,导致每次循环都会覆盖之前的单元格内容;
  • 后来修改为传入单个datetime.date对象时报错,是因为write_row方法要求第三个参数必须是可迭代的序列(比如列表、元组),而单个datetime对象不满足这个要求。

修正后的代码

我们可以通过两种方式解决:

方式一:遍历索引逐个写入(适配你的原有思路)

把单个datetime对象包装成列表,同时调整循环逻辑,确保每个元素写入对应位置:

from datetime import date, time
import xlsxwriter

date_list = [date(2019, 12, 2), date(2019,12,5), date(2019,12,4), date(2019,12,6)]
time_list = [time(10, 11, 55), time(10, 42, 46), time(10, 11, 45), time(10, 20, 15)]

workbook = xlsxwriter.Workbook('output.xlsx')
Report_Sheet = workbook.add_worksheet()

# 写入日期行(第1行,列从1开始)
for col_idx, date_val in enumerate(date_list, start=1):
    # 将单个datetime对象包装成列表,满足write_row的可迭代要求
    Report_Sheet.write_row(0, col_idx, [date_val])

# 写入时间行(第2行,列从1开始)
for col_idx, time_val in enumerate(time_list, start=1):
    Report_Sheet.write_row(1, col_idx, [time_val])

workbook.close()

方式二:更高效的批量写入(推荐)

其实write_row可以直接写入整行数据,不需要循环单个元素,这样代码更简洁:

from datetime import date, time
import xlsxwriter

date_list = [date(2019, 12, 2), date(2019,12,5), date(2019,12,4), date(2019,12,6)]
time_list = [time(10, 11, 55), time(10, 42, 46), time(10, 11, 45), time(10, 20, 15)]

workbook = xlsxwriter.Workbook('output.xlsx')
Report_Sheet = workbook.add_worksheet()

# 直接将整个date_list写入第1行,从列1开始
Report_Sheet.write_row(0, 1, date_list)
# 直接将整个time_list写入第2行,从列1开始
Report_Sheet.write_row(1, 1, time_list)

workbook.close()

这种方式既避免了循环的冗余,也不会出现覆盖问题,因为我们一次性把整行数据写入对应位置。

额外提示

如果需要让Excel正确识别日期/时间格式,可以添加格式对象:

# 创建日期格式
date_format = workbook.add_format({'num_format': 'yyyy-mm-dd'})
# 创建时间格式
time_format = workbook.add_format({'num_format': 'hh:mm:ss'})

# 写入时指定格式
Report_Sheet.write_row(0, 1, date_list, date_format)
Report_Sheet.write_row(1, 1, time_list, time_format)

内容的提问来源于stack exchange,提问作者pyboy1995

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 22:32:28