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

Python如何修改现有XLSX导出代码实现带自定义表头的CSV导出功能

代码调整方案

核心修改点

  • 替换依赖:移除第三方库xlsxwriter引用,改用Python标准库自带的csv模块,无需额外安装
  • 调整写入逻辑:取消xlsx格式特有的工作簿、工作表层级操作,直接通过csv写入对象操作文件流即可,额外指定newline=''避免Windows系统下生成的CSV出现多余空行,指定编码为utf-8-sig避免Excel打开时中文乱码
  • 适配调用要求:函数名改为create_csv_file,参数定义和原函数完全一致,原有传参逻辑无需修改

完整实现代码

import csv

def create_csv_file(file_path: str, headers: dict, items: list):
    # 打开文件时指定newline避免Windows下多余空行,utf-8-sig编码适配Excel读取
    with open(file_path, 'w', newline='', encoding='utf-8-sig') as f:
        writer = csv.writer(f)
        # 写入表头行
        writer.writerow(headers.values())
        header_keys = list(headers.keys())
        for item in items:
            # 按表头顺序取对应字段值,缺省字段填充空字符串
            row = map(lambda field_id: item.get(field_id, ''), header_keys)
            writer.writerow(row)

# 原有测试数据无需修改
headers = {
    'bank': 'Money in Bank',
    'dailyWinners': 'Daily Winners',
    'dailyFree': 'Daily Free',
    'user': 'User',
}

players = [
    {'dailyWinners': 3, 'dailyFreePlayed': 2, 'user': 'Player1', 'bank': 0.06},
    {'dailyWinners': 3, 'dailyFreePlayed': 2, 'user': 'Player2', 'bank': 4.0},
    {'dailyWinners': 1, 'dailyFree': 2, 'user': 'Player3', 'bank': 3.1},
    {'dailyWinners': 3, 'dailyFree': 2, 'user': 'Player4', 'bank': 0.32}
]

# 按要求形式调用
create_csv_file("my csv file.csv", headers, players)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 20:15:05