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

如何使用Python 3.5将CSV转换为XLSX?Pandas与XlsxWriter均不可用

Python 3.5 下 CSV 转 XLSX 的可行方法

由于Pandas和XlsxWriter在Python 3.5环境下兼容性不佳,推荐使用csv模块+openpyxl旧版本的组合方案,具体步骤如下:

1. 安装兼容版本的openpyxl

Python 3.5仅支持openpyxl 2.6.x及以下版本,执行以下命令安装:

pip install openpyxl==2.6.4

2. 基础转换代码

直接读取CSV内容并写入XLSX文件,适用于无特殊格式需求的场景:

import csv
from openpyxl import Workbook

def csv_to_xlsx(csv_path, xlsx_path):
    # 创建工作簿与默认工作表
    wb = Workbook()
    ws = wb.active

    # 读取CSV并逐行写入
    with open(csv_path, 'r', encoding='utf-8') as f:
        csv_reader = csv.reader(f)
        for row in csv_reader:
            ws.append(row)
    
    # 保存XLSX文件
    wb.save(xlsx_path)

# 调用示例
csv_to_xlsx("source.csv", "result.xlsx")

3. 进阶格式处理(可选)

如果CSV包含数字、日期等需要特定格式的内容,可添加格式处理逻辑:

import csv
from openpyxl import Workbook
from openpyxl.styles import numbers

def csv_to_xlsx_with_format(csv_path, xlsx_path):
    wb = Workbook()
    ws = wb.active

    with open(csv_path, 'r', encoding='utf-8') as f:
        csv_reader = csv.reader(f)
        for row_idx, row in enumerate(csv_reader):
            processed_row = []
            if row_idx == 0:
                # 表头直接写入
                ws.append(row)
                continue
            # 处理数据行,尝试转换为数字
            for cell_val in row:
                try:
                    num_val = float(cell_val)
                    processed_row.append(num_val)
                except ValueError:
                    processed_row.append(cell_val)
            ws.append(processed_row)
    
    # 设置第二列为保留两位小数的数值格式
    for cell in ws['B']:
        cell.number_format = numbers.FORMAT_NUMBER_00
    
    wb.save(xlsx_path)

注意事项

  • 根据CSV实际编码调整encoding参数(如GBK编码需改为encoding='gbk')
  • 若CSV包含分隔符转义(如逗号在单元格内),csv模块会自动处理,无需额外操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 12:40:30