csv转xlsx - 导入时总是空白?

1 投票
1 回答
619 浏览
提问于 2025-04-18 06:13

我在尝试把一个csv文件转换成xlsx格式,以便后续处理。但是无论我怎么做,生成的xlsx文件总是空的(虽然能创建xlsx文件并添加工作表名称,但里面从来没有数据)。

我真的很困惑,尝试了各种方法。下面是我用过的最完整的代码。

import csv
from xlsxwriter.workbook import Workbook

workbook = Workbook("test.xlsx")
worksheet = workbook.add_worksheet("Raw_Data")

with open("C:\Console2\\csv.test",'r') as f:
    reader = csv.reader(f)
    for r, row in enumerate(reader):
        for c, col in enumerate(row):
            worksheet.write(r, c, col)

我不太理解reader这一行之后的部分,但我发现我找到的所有相关代码都在用这个。我也尝试过用“for语句”来写一个普通的csv文件,但也没有成功。

补充 - 问题似乎出在reader这个变量上,不知道为什么,因为它在其他代码中运行得很好。

更新 - 看起来代码覆盖了原来的csv文件,不知道具体原因,我只是想读取文件并保留里面的内容。

1 个回答

1

你需要关闭 workbook 才能让它正常工作:

import csv
from xlsxwriter.workbook import Workbook

workbook = Workbook("test.xlsx")
worksheet = workbook.add_worksheet("Raw_Data")

with open("C:\Console2\\csv.test",'r') as f:
    reader = csv.reader(f)
    for r, row in enumerate(reader):
        for c, col in enumerate(row):
            worksheet.write(r, c, col)

workbook.close()

可以在 这里 查看一个示例。

撰写回答