python将excel转成csv

import polars as pl

excel_path = r"C:\Users\Administrator\Desktop\测试3.xlsx"
csv_path = r"C:\Users\Administrator\Desktop\测试6.csv"

try:
    print("📥 正在读取Excel...")
    df = pl.read_excel(excel_path, engine="calamine")
    print(f"✅ 读取完成:{df.height} 行,{df.width} 列")

    print("💾 正在写入CSV文件...")
    # 第一步:写入无BOM的UTF-8(当前版本默认支持)
    df.write_csv(csv_path, include_header=True, separator=",")

    # 第二步:手动添加BOM头,变成utf-8-sig格式,Excel打开不乱码
    print("🔧 正在添加BOM头...")
    with open(csv_path, "rb") as f:
        content = f.read()
    with open(csv_path, "wb") as f:
        # BOM头 + 原内容
        f.write(b"\xef\xbb\xbf" + content)

    print(f"\n🎉 转换成功!")
    print(f"📁 输出文件:{csv_path}")

except Exception as e:
    print(f"❌ 出错:{e}")
import subprocess
import sys

excel_path = r"C:\Users\Administrator\Desktop\测试3.xlsx"
csv_path = r"C:\Users\Administrator\Desktop\测试6.csv"

# 构造命令
cmd = [
    sys.executable,
    "-m", "xlsx2csv",
    excel_path,
    csv_path,
    "-c", "utf-8-sig"
]

print("📥 开始转换...")
result = subprocess.run(cmd, capture_output=True, text=True)

if result.returncode == 0:
    print(f"✅ 转换成功!文件输出:{csv_path}")
else:
    print(f"❌ 转换失败:{result.stderr}")////
#方式 2:用 xlsx2csv 的 Python API(推荐,更可控)
python
运行
from xlsx2csv import Xlsx2csv

excel_path = r"C:\Users\Administrator\Desktop\测试3.xlsx"
csv_path = r"C:\Users\Administrator\Desktop\测试6.csv"

print("📥 开始转换...")
Xlsx2csv(excel_path, outputencoding="utf-8-sig").convert(csv_path)
print(f"✅ 转换成功!文件输出:{csv_path}")