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

如何使用openpyxl将Python列表导出为Excel文件?

使用openpyxl导出修改后的数据到新Excel文件

首先你当前的导入代码存在一个问题:把字典转成字符串存入out_data,这会导致后续修改数据非常麻烦。建议先调整导入逻辑,直接存储可操作的数据结构(比如字典列表或列表的列表),示例如下:

修正后的导入代码(字典列表形式)

from openpyxl import load_workbook

path = "xyz"
l_data = load_workbook(path)
sheet = l_data.active
c_row = sheet.max_row
c_column = sheet.max_column
out_data = []

for a in range(1, c_row + 1):
    row_dict = {}
    for b in range(1, c_column + 1):
        ob = sheet.cell(row=a, column=b)
        row_dict[b] = ob.value
    out_data.append(row_dict)  # 直接存储字典,不转字符串

# 这里模拟对out_data的修改,比如修改第一行第一列的值
out_data[0][1] = "修改后的值"

导出修改后的数据到新Excel

接下来用openpyxl创建新工作簿,将修改后的out_data写入并保存:

from openpyxl import Workbook

# 创建新工作簿并获取活动工作表
wb = Workbook()
ws = wb.active

# 遍历数据,逐单元格写入
for row_idx, row_data in enumerate(out_data, start=1):
    for col_idx, value in row_data.items():
        ws.cell(row=row_idx, column=col_idx, value=value)

# 保存新文件
wb.save("修改后的文件.xlsx")

更简洁的列表列表方案

如果觉得字典形式繁琐,也可以用列表的列表存储数据,导入和导出代码会更简洁:

导入代码

from openpyxl import load_workbook

path = "xyz"
l_data = load_workbook(path)
sheet = l_data.active
c_row = sheet.max_row
c_column = sheet.max_column
out_data = []

for a in range(1, c_row + 1):
    row_list = []
    for b in range(1, c_column + 1):
        row_list.append(sheet.cell(row=a, column=b).value)
    out_data.append(row_list)

# 模拟修改,比如修改第二行第三列(索引从0开始)
out_data[1][2] = "新内容"

导出代码

from openpyxl import Workbook

wb = Workbook()
ws = wb.active

# 直接逐行添加数据
for row in out_data:
    ws.append(row)

wb.save("修改后的文件.xlsx")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 02:47:37