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

Python将二维列表写入Excel时文件为空问题咨询

问题原因及解决办法

核心问题

你构建的person列表是三层嵌套结构:[[[Smith, Johnson, ...]], [[22, 44, ...]]],而xlsxwriter的write_row方法需要接收一维列表来填充一行的单元格。

当执行worksheet.write_row(row_num, 0, data)时,data是[name]或[age](即包含整个姓名/年龄列表的列表),write_row会把外层列表的每个元素(也就是整个姓名列表或年龄列表)当成单个单元格的值。但xlsxwriter无法直接将Python列表对象写入单元格,最终导致Excel中看不到有效内容。

解决办法

有两种修正方式:

方式一:调整person的结构(推荐)

去掉多余的嵌套层,让person直接包含两个一维列表:

name = ['Smith','Johnson','Williams','Brown','Jones','Miller','Davis','Garcia']
age = [22 ,44, 44, 65, 64, 47, 14, 63]

person = [name, age]  # 仅保留两层结构
print(person)
with xlsxwriter.Workbook('fileName.xlsx') as workbook:
    worksheet = workbook.add_worksheet()
    for row_num, data in enumerate(person):
        worksheet.write_row(row_num, 0, data)

方式二:修改写入逻辑

如果要保留原person的结构,在写入时取出内层的一维列表:

name = ['Smith','Johnson','Williams','Brown','Jones','Miller','Davis','Garcia']
age = [22 ,44, 44, 65, 64, 47, 14, 63]

person = [[name],[age]]
print(person)
with xlsxwriter.Workbook('fileName.xlsx') as workbook:
    worksheet = workbook.add_worksheet()
    for row_num, data in enumerate(person):
        worksheet.write_row(row_num, 0, data[0])  # 提取内层列表作为写入数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 20:16:11