【问题标题】:Fast way to convert xlsx to csv with python使用python将xlsx转换为csv的快速方法
【发布时间】:2021-11-26 11:30:54
【问题描述】:

我有一个工具可以让 ssers 上传大型 xlsx 文件。我们需要将这些 xlsx 文件转换为 csv 以进行处理。但是,我没有找到将 xlsx 文件转换为 csv 的快速方法。我们无法使用 VBS 脚本(速度非常快)。我尝试了各种方式,比如pandas、openpyxl:

熊猫

read_file = pd.read_excel(os.path.join(path, old_filename), engine="openpyxl")
read_file.to_csv(os.path.join(path, new_filename), index=None, header=True)

openpyxl

wb = openpyxl.load_workbook(file, data_only=True)
sh = wb.active  # was .get_active_sheet()
with open(os.path.join(path, filename), 'w', newline="") as f:
    c = csv.writer(f)
    for r in sh.iter_rows():  # generator; was sh.rows
        c.writerow([cell.value for cell in r])

但是一个 60mb 的 xlsx 文件大约需要 4 分钟才能将其转换为 csv。

有没有办法让转换更快?我愿意接受任何解决方案。

【问题讨论】:

    标签: python pandas csv xlsx


    【解决方案1】:

    不要遍历行内的所有单元格,将它们整个复制。

    for rownum in range(sh.nrows):
        c.writerow(sh.row_values(rownum))
    

    https://stackoverflow.com/a/20105297/13000953

    【讨论】:

    • 嘿,我收到以下错误:“工作表”对象没有属性“nrows”
    • 你能试试len(sh) 吗?
    猜你喜欢
    • 2013-07-15
    • 2018-08-27
    • 2023-01-11
    • 1970-01-01
    • 2013-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-03
    相关资源
    最近更新 更多