python - 如何在 Python 中获取 Excel 单元格属性

标签 python xlrd

其实我使用的是xlrd module 0.8版本,但是我不知道如何读取单元格属性,比如背景颜色,字体,单元格是否被锁定。

我试过

import xlrd
wb = xlrd.open_workbook(...)
sh = wb.sheet_by_index(...)
sh.sh._cell_xf_indexes(2, 2)

在读取 wb 时会引发一个错误,指出需要设置格式信息,但如果我有该参数,那么它会显示它仍未实现。

是否有另一个模块或如何使该模块本身读取单元格属性?

最佳答案

以下对我有用,使用 xlrd 版本 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 是 XF 类的实例;见https://secure.simplistix.co.uk/svn/xlrd/trunk/xlrd/doc/xlrd.html#formatting.XF-class

dump() 方法打印有关格式的所有信息。以下是上述代码的输出:

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

其中一些值是工作簿 wb 列表中的索引。例如,fmt.font_index 是 72,wb.font_list[72]Font 类的实例(https://secure .simplistix.co.uk/svn/xlrd/trunk/xlrd/doc/xlrd.html#formatting.Font-class)。

关于python - 如何在 Python 中获取 Excel 单元格属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12540856/

相关文章:

python - 请求库未通过代理正确引导 HTTP 请求

python - django local_settings导入错误

python - `eli5.show_weights` 显示的标准偏差与`feature_importances_std_`中的值不一致

python - 使用 XLRD 验证单元格值

python - 如何仅合并 Pandas 中的特定数据框列?

Python 标准输入文件名

python - 如何检查单元格是否包含值

python - 使用 python 编码从 Excel 读取字符串的缺点 ('utf-8' )

python - 使用python进行Excel列比较并设置颜色格式

python - 如何通过 xlwt 获取 Excel 文件中的行数