繁体   English   中英

Python:遍历工作表以导出到csv

[英]Python: Iterating through worksheets to export to csv

我正在对两个工作簿进行摘要比较,并输出第三个工作簿。 我这样做是通过将每个工作簿(结构相同,包含15个工作表)导出到一系列csv文件,然后通过读取csv文件A和从第二个文件转换而来的相应命名的csv文件B进行表到表比较工作簿。

我正在使用xlrdcsv

这是失败的部分代码:

outpath_a = os.path.join(working_directory, "out_a")  # dir set earlier
workbook_a_sheets = workbook_a.sheet_names()
workbook_b_sheets = workbook_b.sheet_names()

for a in workbook_a_sheets:
    out_csv = os.path.join(outpath_a, a)
    with open(out_csv, 'wb') as oca:
        cw = csv.writer(oca, dialect=csv.excel, quoting=csv.QUOTE_ALL)
        for rownum in xrange(a.nrows):
            cw.writerow(a.row_values(rownum))

它给了我错误:

AttributeError: 'unicode' object has no attribute 'nrows'

我尝试使用unicodecsv而不是csvimport unicodecsv as csv ),但是错误是相同的。

您正在尝试访问工作表名称,就像它是工作表对象一样。

您需要在工作簿上调用sheet_by_name方法来获取它

固定循环:

for a in workbook_a_sheets:
    out_csv = os.path.join(outpath_a, a)
    with open(out_csv, 'wb') as oca:
        cw = csv.writer(oca, dialect=csv.excel, quoting=csv.QUOTE_ALL)
        # get sheet object from its name
        a_sheet = workbook_a.sheet_by_name(a)
        for rownum in xrange(a_sheet.nrows):
            cw.writerow(a_sheet.row_values(rownum))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM