使用XLRD包标识Excel工作表单元格颜色代码
我正在写一个python脚本来使用xlrd从excel表读取数据。 工作表中的几个单元格用不同的颜色突出显示,我想识别单元格的颜色代码。 有没有办法做到这一点? 一个例子将非常感激。
这是处理这个问题的一种方法:
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的更多信息。
这个函数以元组的forms返回单元格背景的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