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

如何使用openpyxl将CSV文件内容写入Excel指定工作表

解决方案

原有代码错误点

  • 工作表引用逻辑错误:新建工作簿默认生成的工作表名为Sheet,你将工作表名列表wb.sheetnames赋值给TOP3变量,后续直接调用wb["TOP3"]无法匹配到存在的工作表,且你的需求是写入metrics工作表,无需引用不存在的TOP3表
  • 保存时机错误:在写入内容前就执行了wb.save,后续对工作表的修改没有再次触发保存操作,不会写入最终文件
  • 单元格写入逻辑错误:循环逻辑会把整行内容赋值给A列的单个单元格,且行号、列号的计算完全错误,无法按CSV原有行列结构写入
  • 语法错误:with语句前存在多余缩进,会直接触发语法报错

正确实现代码

import openpyxl
import csv

# 1. 创建工作簿
wb = openpyxl.Workbook()
# 删除默认生成的Sheet工作表(不需要删除可以注释掉该行)
wb.remove(wb["Sheet"])
# 2. 创建目标工作表
ws = wb.create_sheet(title="metrics")

# 3. 读取CSV并写入工作表
with open("metrics.csv", "r", encoding="utf-8") as f:
    reader = csv.reader(f)
    # 逐行读取CSV内容,直接追加到工作表末尾
    for row in reader:
        ws.append(row)

# 4. 所有修改完成后统一保存工作簿
wb.save(filename="Test.xlsx")

补充说明

  • 如果你的CSV文件是GBK编码(比如Windows系统下导出的CSV),可以把encoding="utf-8"改成encoding="gbk"避免中文乱码
  • append()方法会自动将传入的列表按顺序写入当前工作表最后一行的每一列,不需要手动计算行列号,完美适配CSV的行结构
  • 所有对工作簿的修改完成后再执行保存操作即可,不需要提前保存

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 13:18:00