/ / Идентифициране на цветови кодовете на Excel Sheet Cell с XLRD пакет - python, excel, xlrd

Идентифициране на цветови код на Sheet Cell Sheet с XLRD пакет - python, excel, xlrd

Пиша питънски скрипт за четене на данни от лист за Excel xlrd, Малко от клетките на работния лист се открояват с различен цвят и искам да идентифицирам цветния код на клетката. Има ли някакъв начин да направите това? Един пример би бил наистина оценен.

Отговори:

37 за отговор № 1

Ето един начин да се справите с това:

import xlrd
book = xlrd.open_workbook("sample.xls", formatting_info=True)
sheets = book.sheet_names()
print "sheets are:", sheets
for index, sh in enumerate(sheets):
sheet = book.sheet_by_index(index)
print "Sheet:", sheet.name
rows, cols = sheet.nrows, sheet.ncols
print "Number of rows: %s   Number of cols: %s" % (rows, cols)
for row in range(rows):
for col in range(cols):
print "row, col is:", row+1, col+1,
thecell = sheet.cell(row, col)
# could get "dump", "value", "xf_index"
print thecell.value,
xfx = sheet.cell_xf_index(row, col)
xf = book.xf_list[xfx]
bgx = xf.background.pattern_colour_index
print bgx

Повече информация за Python-Excel Google Group.


1 за отговор № 2

Тази функция връща rgb стойността на клетъчния фон в плика.

def getBGColor(book, sheet, row, col):
xfx = sheet.cell_xf_index(row, col)
xf = book.xf_list[xfx]
bgx = xf.background.pattern_colour_index
pattern_colour = book.colour_map[bgx]

#Actually, despite the name, the background colour is not the background colour.
#background_colour_index = xf.background.background_colour_index
#background_colour = book.colour_map[background_colour_index]

return pattern_colour