Я делаю сводное сравнение двух книг и выводя третью. Я делаю это, экспортируя каждую рабочую книгу (идентично структурированную, содержащую 15 листов) в серию csv-файлов, а затем выполняю сравнение таблицы с таблицей, читая в csv-файле A и его названном csv-файле B, преобразованном со второго Учебное пособие.Python: Итерация через рабочие листы для экспорта в csv
Я использую 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
), но ошибка такая же.
вы, вероятно, означает 'xrange (workbook_a.nrows)'. 'a' является _name_ вашего рабочего листа, а не листом. –
Разве это не поиск всей книги? Я хочу перебирать каждый лист и экспортировать каждый лист в собственный файл csv. – auslander
вы правы! вы должны получить объект листа, используя его имя. –