如何将Excel工作表另存为CSV

发布于 2021-01-29 15:07:03

我想编写一个Python脚本,该脚本读取Excel电子表格并将其某些工作表另存为CSV文件。

我怎样才能做到这一点?

我已经找到了用于从Python读取和写入Excel文件的第三方模块,但据我所知,它们只能以Excel(即* .xls)格式保存文件。如果我错了,那么一些示例代码将展示如何使用这些模块进行操作。

我还遇到了一个我不太了解的解决方案,但该解决方案似乎特定于Windows,因此无论如何都无济于事,因为我想在Unix中进行此操作。无论如何,对我来说还不清楚是否可以扩展此解决方案以执行我想做的事情,即使在Windows下也是如此。

关注者
0
被浏览
91
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    使用这两个库的最基本示例逐行描述:

    1. 打开xls工作簿
    2. 引用第一个电子表格
    3. 用二进制打开写入目标csv文件
    4. 创建默认的csv writer对象
    5. 循环遍历第一个电子表格的所有行
    6. 将行转储到csv中

    import xlrd
    import csv
    
    with xlrd.open_workbook('a_file.xls') as wb:
        sh = wb.sheet_by_index(0)  # or wb.sheet_by_name('name_of_the_sheet_here')
        with open('a_file.csv', 'wb') as f:   # open('a_file.csv', 'w', newline="") for python 3
            c = csv.writer(f)
            for r in range(sh.nrows):
                c.writerow(sh.row_values(r))
    

    import openpyxl
    import csv
    
    wb = openpyxl.load_workbook('test.xlsx')
    sh = wb.get_active_sheet()
    with open('test.csv', 'wb') as f:  # open('test.csv', 'w', newline="") for python 3
        c = csv.writer(f)
        for r in sh.rows:
            c.writerow([cell.value for cell in r])
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看