使用openpyxl将CSV转换为XLSX,但引用来自数字前面

时间:2015-12-14 11:09:29

标签: python excel csv openpyxl

我尝试使用openpyxl将CSV转换为xlsx。转换成功但我注意到数字前面的引号(')。使它成为字符串而不是数字。因为我是python的新手,所以你会感激不尽。

以下是我正在使用的代码:

import os
import glob
import csv
import openpyxl

for csvfile in glob.glob(os.path.join('.', '*.csv')):
    wb = openpyxl.Workbook()
    ws = wb.active
    with open(csvfile, 'rb') as f:
        reader = csv.reader(f)
        for r, row in enumerate(reader, start = 1):
            for c, val in enumerate(row, start = 1):
                ws.cell(row = r, column = c).value = val
    wb.save(csvfile + '.xlsx')

1 个答案:

答案 0 :(得分:0)

CSV文件的最大问题是不包含数据输入,所以一切都是字符串。 openpyxl提供了一个“guess_types”模式,您可以尝试使用它,但我强烈建议您根据自己对文件的了解自行进行类型转换,例如:将第3列和第4列转换为整数,将第6列转换为浮点数。

FWIW你真的不需要for c, val in enumerate(row, start=1)你可以做ws.append(row)