从 csv 转换为 excel 时布局错误

Wrong layout when converting from csv to excel

我有以下代码,但输出显示不正确。 关于为什么会导致这种情况的任何想法。我在 Linux

中没有这个问题

我尝试添加:encoding="utf-8"

但这并没有解决问题。

import csv
import openpyxl

wb = openpyxl.Workbook()
ws = wb.active

f = open('C:\HAHA.csv')
reader = csv.reader(f, delimiter=':')
for row in reader:
    ws.append(row)
f.close()

wb.save('C:\HAHA.xlsx')

您告诉 csv 模块使用 : 作为分隔符,而您的实际文件使用(标准)逗号来分隔记录。

f = open('C:\HAHA.csv') 
reader = csv.reader(f)

此外,根据您的 Python 版本,您应该在打开文件时使用换行参数或 rb 模式。阅读 csv module (Python 2) or the csv module (Python 3)

的文档

您的分隔符是 , 而不是 ::

import csv
import openpyxl

wb = openpyxl.Workbook()
ws = wb.active

with open('C:\HAHA.csv') as f:
    reader = csv.reader(f, delimiter=',')
    for row in reader:
        ws.append(row)

wb.save('C:/HAHA.xlsx')