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}")
评论