如何用Pandas将CSV数据正确导入Excel?解决单行写入问题
解决CSV导入Excel内容挤在同一行的问题
方案1:改用Pandas原生to_excel方法(简单直接)
如果只是完成CSV到Excel的导入,直接用Pandas自带的to_excel更高效,无需手动操作工作表对象:
import pandas as pd # 读取CSV文件 QTH = pd.read_csv(r"C:\Users\SLA.csv") # 写入Excel,指定工作表、起始位置,不保留DataFrame索引 QTH.to_excel(r"C:\Users\target_file.xlsx", sheet_name="mySheet", startrow=0, startcol=0, index=False)
如果要写入已存在的Excel文件,需用ExcelWriter实现:
from openpyxl import load_workbook # 加载已有的Excel工作簿 book = load_workbook(r"C:\Users\target_file.xlsx") writer = pd.ExcelWriter(r"C:\Users\target_file.xlsx", engine='openpyxl') writer.book = book # 写入指定工作表,覆盖原有内容(需追加数据可调整参数) QTH.to_excel(writer, sheet_name="mySheet", index=False) writer.close()
方案2:修复xlwings写法(若坚持用原工具)
你当前的xlwings代码中,header=1参数可能导致解析异常,简化参数让xlwings自动识别DataFrame结构即可:
import pandas as pd import xlwings as xw QTH = pd.read_csv(r"C:\Users\SLA.csv") wb = xw.Book(r"C:\Users\target_file.xlsx") # 确保正确加载工作簿 ws = wb.sheets["mySheet"] # 移除多余的header参数,让xlwings自动处理表头和数据行 ws["A1"].options(index=False, expand='table').value = QTH
若CSV本身带表头,expand='table'会自动将表头和数据分行列写入,无需额外指定header参数。
排查小提示
- 检查CSV格式:用记事本打开CSV,确认分隔符是逗号(若为其他符号,读取时需指定
sep参数,比如pd.read_csv(..., sep='\t')) - 验证DataFrame:执行
QTH.info()确认列数、行数正确,排除读取阶段的解析错误
内容的提问来源于stack exchange,提问作者Jodahsh
相关产品推荐
相关产品推荐

