How to get Excel cell properties in Python

后端 未结 1 1381
情歌与酒
情歌与酒 2020-12-06 06:59

Actually I am using xlrd module 0.8 version, but I don\'t know how to read cell properties like background color, font, and whether cell is locked.

I tried to use

相关标签:
1条回答
  • 2020-12-06 08:02

    The following works for me, using xlrd version 0.7.6:

    from xlrd import open_workbook
    
    wb = open_workbook('tmp.xls', formatting_info=True)
    sheet = wb.sheet_by_name("1")
    cell = sheet.cell(6, 0)
    print "cell.xf_index is", cell.xf_index
    fmt = wb.xf_list[cell.xf_index]
    print "type(fmt) is", type(fmt)
    print
    print "fmt.dump():"
    fmt.dump()
    

    fmt is an instance of the XF class; see https://secure.simplistix.co.uk/svn/xlrd/trunk/xlrd/doc/xlrd.html#formatting.XF-class

    The dump() method prints all the information about the format. Here's the output of the above code:

    cell.xf_index is 497
    type(fmt) is <class 'xlrd.formatting.XF'>
    
    fmt.dump():
    _alignment_flag: 1
    _background_flag: 1
    _border_flag: 1
    _font_flag: 1
    _format_flag: 0
    _protection_flag: 0
    alignment (XFAlignment object):
        hor_align: 1
        indent_level: 0
        rotation: 0
        shrink_to_fit: 0
        text_direction: 0
        text_wrapped: 0
        vert_align: 2
    background (XFBackground object):
        background_colour_index: 64
        fill_pattern: 1
        pattern_colour_index: 17
    border (XFBorder object):
        bottom_colour_index: 0
        bottom_line_style: 0
        diag_colour_index: 0
        diag_down: 0
        diag_line_style: 0
        diag_up: 0
        left_colour_index: 0
        left_line_style: 0
        right_colour_index: 0
        right_line_style: 0
        top_colour_index: 56
        top_line_style: 1
    font_index: 72
    format_key: 0
    is_style: 0
    lotus_123_prefix: 0
    parent_style_index: 0
    protection (XFProtection object):
        cell_locked: 1
        formula_hidden: 0
    xf_index: 497
    

    Some of those values are indices into lists on the workbook wb. For example, fmt.font_index is 72, and wb.font_list[72] is an instance of the Font class (https://secure.simplistix.co.uk/svn/xlrd/trunk/xlrd/doc/xlrd.html#formatting.Font-class).

    0 讨论(0)
提交回复
热议问题