Python:遍历工作表导出到CSV
我正在做两个工作簿的总结比较,并输出第三个。 我这样做是通过将每个工作簿(包含15个工作表的相同结构)导出到一系列csv文件,然后通过读取csv文件A及其相应命名的从第二个文件转换而来的csv文件B来进行表到表比较工作簿。
我正在使用xlrd
和csv
以下是失败代码的一部分:
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
而不是csv
( import 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))