2012-09-22 5 views
5

Eigentlich verwende ich xlrd Modul 0.8 Version, aber ich weiß nicht, wie Zelleneigenschaften wie Hintergrundfarbe, Schriftart zu lesen, und ob Zelle gesperrt ist.Wie bekomme ich Excel-Zellen-Eigenschaften in Python

versuchte ich

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

Es wirft eine Fehlerinformationen festgelegt werden muss Formatierung sagen zu verwenden, während wb zu lesen, aber wenn ich diesen Parameter hatte dann zeigt sie es noch nicht implementiert ist.

Gibt es ein anderes Modul oder wie kann dieses Modul selbst gemacht werden, um Zelleigenschaften zu lesen?

+0

siehe http://stackoverflow.com/questions/7991209/identifying-excel-sheet-cell-color-code-using-xlrd-package –

Antwort

11

Die folgenden Werke für mich, mit 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 ist eine Instanz der XF-Klasse; siehe https://secure.simplistix.co.uk/svn/xlrd/trunk/xlrd/doc/xlrd.html#formatting.XF-class

Die Methode dump() druckt alle Informationen über das Format. Hier ist die Ausgabe des obigen Codes:

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 

Einige dieser Werte sind Indizes in Listen auf der Arbeitsmappe wb. Beispiel: fmt.font_index ist 72, und wb.font_list[72] ist eine Instanz der Klasse Font (https://secure.simplistix.co.uk/svn/xlrd/trunk/xlrd/doc/xlrd.html#formatting.Font-class).

Verwandte Themen