Использование XLRD модуля и Python для определения стиля шрифта ячейки (Курсив или нет)
Я пытаюсь проанализировать данные в электронной таблице excel с помощью XLRD, чтобы определить, какие значения ячеек выделены курсивом. Эта информация будет использоваться для установки флага о том, является ли значение оценочным или сообщенным значением. Ниже приведен пример данных:
owner_name year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
Alachua, city of 1978 17.4 15.7 16.7 18.3 18.9 18.9 19.2 17.4 19.5 19.8 17.1 16.4
Archer, city of 1978 5.6 3.6 4.3 4.5 4.7 4.8 5.3 5.3 5.4 5.6 3.9 2.8
Я не использовал XLRD в какой-либо значительной степени, кроме игры с некоторыми из основных функций, чтобы почувствовать, как вытащить данные из электронной таблицы. Теперь мне нужно добавить еще немного функциональности определите выделенные курсивом значения ячеек.
заранее спасибо за вашу помощь...
изменить: XLRD предоставил мне возможности мне нужно; спасибо Джон Мачин за ответ. Вот ТЭН codez:
import xlrd
book = xlrd.open_workbook('fl_data.xls',formatting_info=True)
sh = book.sheet_by_index(0)
for row in range(0,sh.nrows):
font = book.font_list
cell_val = sh.cell_value(row,1)
cell_xf = book.xf_list[sh.cell_xf_index(row,1)]
print cell_val,font[cell_xf.font_index].italic
2 ответов
используя xlrd (сам по себе, а не с pyexcel):
здесь ссылка на тему в python-excel google-group. Речь идет о получении цвета шрифта, но это дает вам 99% пути.
мое решение здесь было основано на классе, написанном "timmorgan", который можно найти здесь. Класс требует, чтобы документ excel, на который вы хотите действовать, был открыт. Затем вы создаете объект документа excel, а затем вызываете метод get_range, который возвращает объект range. Затем этот объект диапазона можно использовать для получения свойств шрифта указанной ячейки.
#--Requires excel document to be open
import pyexcel
book = pyexcel.ExcelDocument(visible=True) #--keeps excel open
cell = 'r171'
r = book.get_range(cell)
val = book.get_value(cell)
print val, r.font.italic, r.font.name