2016-06-24 8 views
1

У меня есть файл Excel (.xlsx), который я пытаюсь разобрать по строкам. У меня есть заголовок (первая строка), в котором есть куча названий столбцов, таких как школа, имя, фамилия, адрес электронной почты и т. Д.Python: Имитация CSV.DictReader с OpenPyXL

Когда я прохожу через каждую строку, я хочу сказать что-то вроде:

row['School'] 

и вернуть значение ячейки в текущей строке и колонке с названием «Школа» в качестве названия.

Я просмотрел документы OpenPyXL, но не могу найти ничего ужасно полезного.

Любые предложения?

+1

Вы пытались использовать read_excel из pandas? – Jonathan

+0

Я также хочу использовать такую ​​удобную функцию. Пока я использую orderdict, чтобы помочь мне решить проблему. Если вы найдете какой-либо способ более удобным, пожалуйста, поделитесь с нами. – ramwin

ответ

0

Листы Excel гораздо более гибкие, чем файлы CSV, поэтому имеет смысл иметь что-то вроде DictReader.

Просто создайте вспомогательный словарь из соответствующих заголовков столбцов.

Если у вас есть столбцы, такие как "School", "First Name", "Last Name", "EMail", вы можете создать такой словарь.

keys = dict((value, idx) for (idx, value) in enumerate(values)) 
for row in ws.rows[1:]: 
    school = row[keys['School'].value 
+1

Спасибо за ответ; Я новичок в Python, поэтому не могли бы вы подробнее рассказать о своем ответе? – bclayman

+0

Что неясно? Вы можете обновить вопрос в свете ответа. –

Смежные вопросы