Ȯ$i6ddlmZddlmZddlmZmZddlddlmZm Z ddl m Z m Z m Z mZmZddldZdZdZGd d eZGd d eZGd deZGddeZGddeZGddeZdZeeeeeee e!e"eiZ#e$de%dede!de&de'de(diZ)GddeZ*e*e$e+dZ,Gd d!eZ-dZ.Gd"d#eZ/y$)%)print_function)array)calcsizeunpack)*)Formatnearest_colour_index)FMLA_TYPE_CELLFMLA_TYPE_SHAREDdecompile_formula dump_formula rangename2d) ) show_formulasr)show_grid_linesr)show_sheet_headersr)panes_are_frozenr)show_zero_valuesr)automatic_grid_line_colourr)columns_from_right_to_leftr)show_outline_symbolsr)'remove_splits_if_pane_freeze_is_removedr)sheet_selectedr) sheet_visibler)show_in_page_break_previewrcneZdZdZdZdZdZdZiZiZ gZ gZ gZ iZ dZdZdZdZdZdZdZdZdZgZiZiZdZdZdZdZdZdZgZ gZ!dZ"dZ#dZ$d Z%d Z&d Z'd Z(d Z)dZ*e*Z+d(dZ,d(dZ-d(dZ.d(dZ/d(dZ0d(dZ1e/Z2dZ3dZ4dZ5dZ6dZ7dZ8d)dZ9d*dZ:d*dZ;dZd!Z?d"Z@d#ZAd$ZBd%ZCd&ZDd'ZEy)+Sheetaj Contains the data for one worksheet. In the cell access functions, ``rowx`` is a row index, counting from zero, and ``colx`` is a column index, counting from zero. Negative values for row/column indexes and slice positions are supported in the expected fashion. For information about cell types and cell values, refer to the documentation of the :class:`Cell` class. .. warning:: You don't instantiate this class yourself. You access :class:`Sheet` objects via the :class:`~xlrd.book.Book` object that was returned when you called :func:`xlrd.open_workbook`. Nr(rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrc||_|j|_||_|j|_t dt g|_t ddg|_||_||_ |j|_ |j|_ |j|_ |jr|j|_n|j|_|j |_d|_d|_d|_d|_d|_d|_g|_g|_g|_d|_d|_d|_d|_d|_d|_d|_ i|_!i|_"g|_#g|_$g|_%i|_&g|_'g|_(gd|_)|jT||_+tXD]\}}t[|||d|_.d|_/d|_0d|_1g|_2i|_3i|_4d|_5d|_6d|_7d|_8d|_9d|_:i|_;|jd k\rd |_<nd |_<d |_=d|_>y) NBhr)rrrr@<dPi@)?book biff_version _positionlogfiler XL_CELL_EMPTYbtbfnamenumber verbosityformatting_info ragged_rowsput_cell_raggedput_cellput_cell_unragged_xf_index_to_xl_type_mapnrowsncols _maxdatarowx _maxdatacolx _dimnrows _dimncols _cell_values _cell_types_cell_xf_indexes defcolwidth standardwidthdefault_row_heightdefault_row_height_mismatchdefault_row_hiddendefault_additional_space_abovedefault_additional_space_below colinfo_map rowinfo_mapcol_label_rangesrow_label_ranges merged_cellsrich_text_runlist_maphorizontal_page_breaksvertical_page_breaks_xf_index_stats_sheet_visibility visibility_WINDOW2_optionssetattrfirst_visible_rowxfirst_visible_colxgridline_colour_indexgridline_colour_rgbhyperlink_list hyperlink_map cell_note_map$cooked_page_break_preview_mag_factorcooked_normal_view_mag_factor$cached_page_break_preview_mag_factorcached_normal_view_mag_factorscl_mag_factor_ixfe_cell_attr_to_xfxutter_max_rowsutter_max_cols_first_full_rowx)selfr)positionr0r1attrdefvals P/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/xlrd/sheet.py__init__zSheet.__init__@sE  --!|| m_-bT"  #33++    00DM 22DM(,(E(E%   "!"&+,("#./+./+ " "%'"&(#$&!+008, (LD& D$ ' ("#"#%)"#'  571-0*561-.*" !#    ""'D "'D ! "c|jr|j||}nd}t|j|||j|||S)zC :class:`Cell` object in the given row and column. N)r3 cell_xf_indexCellr@r?rgrowxcolxxfxs rkcellz Sheet.cellsZ   $$T40CC   T "4 (   d #D )   rmc&|j||S)z.Value of the cell in the given row and column.r?rgrrrss rk cell_valuezSheet.cell_values  &t,,rmc&|j||S)z Type of the cell in the given row and column. Refer to the documentation of the :class:`Cell` class. r@rxs rk cell_typezSheet.cell_types %d++rmc|j|j||}|dkDr|jdxxdz cc<|S |j|j}|dkDr|jdxxdz cc<|S |j |j}|dk(rd}|jdxxdz cc<|S#t $rYEwxYw#t $r|jdxxdz cc<YywxYw)z XF index of the cell in the given row and column. This is an index into :attr:`~xlrd.book.Book.xf_list`. .. versionadded:: 0.6.1 r"rr) req_fmt_inforArQrJxf_indexKeyErrorrIrqs rkrozSheet.cell_xf_indexs ##D)$/ 8   #q ( #J ""4(11CRx$$Q'1,'   ""4(11Cby#   #q ( #J       #q ( # s$6B4;8C4 C?C C&%C&c2t|j|S)z Returns the effective number of cells in the given row. For use with ``open_workbook(ragged_rows=True)`` which is likely to produce rows with fewer than :attr:`~Sheet.ncols` cells. .. versionadded:: 0.7.2 )lenr?)rgrrs rkrow_lenz Sheet.row_lens4$$T*++rmctt|j|Dcgc]}|j||c}Scc}w)zS Returns a sequence of the :class:`Cell` objects in the given row. )xrangerr?rurxs rkrowz Sheet.rowsD s4#4#4T#:;<  IIdD !   sAcr |\}}|j||S#t$r|j|cYSwxYw)z Takes either rowindex or (rowindex, colindex) as an index, and returns either row or cell respectively. )ru TypeErrorr)rgitemrowixcolixs rk __getitem__zSheet.__getitem__sD  +LE5 99UE* *  "88D> ! "s 66c@fdtjDS)z3Returns a generator for iterating through each row.c3@K|]}j|ywN)r).0indexrgs rk z!Sheet.get_rows..s?E?s)ranger9rgs`rkget_rowszSheet.get_rowss?U4::->??rmcN||j||dS|j|||S)zM Returns a slice of the types of the cells in the given row. Nr{rgrr start_colxend_colxs rk row_typeszSheet.row_typess:  ##D)*+6 6%j::rmcN||j||dS|j|||S)zN Returns a slice of the values of the cells in the given row. Nrwrs rk row_valueszSheet.row_valuess:  $$T*:;7 7  &z(;;rmct|j|}|dkr ||z }|dkrd}|||kDr|}n |dkr||z }t||Dcgc]}|j||c}Scc}w)zP Returns a slice of the :class:`Cell` objects in the given row. r)rr?rru)rgrrrrncrss rk row_slicezSheet.row_slices""4( ) > " JA~  x"}H \ NHz84  IIdD !   s A(c|j}|dkr ||z }|dkrd}|||kDr|}n |dkr||z }t||Dcgc]}|j||c}Scc}w)zS Returns a slice of the :class:`Cell` objects in the given column. r)r9rrurgrs start_rowxend_rowxnrrrs rk col_slicezSheet.col_slicesZZ > " JA~  x"}H \ NHz84  IIdD !   Ac|j}|dkr ||z }|dkrd}|||kDr|}n |dkr||z }t||Dcgc]}|j||c}Scc}w)zQ Returns a slice of the values of the cells in the given column. r)r9rr?rs rk col_valueszSheet.col_values)sZZ > " JA~  x"}H \ NHz84    d #D )   rc|j}|dkr ||z }|dkrd}|||kDr|}n |dkr||z }t||Dcgc]}|j||c}Scc}w)zP Returns a slice of the types of the cells in the given column. r)r9rr@rs rk col_typeszSheet.col_types;sZZ > " JA~  x"}H \ NHz84    T "4 (   rc J|jdk\r,t|jd|j|j|j rdx}}|j }|j}|j D]l}|\}}}} d|cxkr |cxkr|krnnd|cxkr | cxkr|ks/nt|jd|j|j|||kDr|}| |kDsk| }n||jkDr||_d|_ ||jkDr%|j|dz dttdd|jdk\r|j|jk7s|j|jk7rXt|jd |j|j|j|j|j|j|j s|j} |j"} |j$} |j&} |j(}|jdk(r |j}n |j}t+|D]\}| |}t-|}| |z }|dkDstdg|z| ||d|j.|z||d|sH|j0|z| ||d^yy) Nrz$tidy_dimensions: nrows=%d ncols=%d rrz6*** WARNING: sheet #%d (%r), MERGEDCELLS bad range %r rr"z?NOTE *** sheet %d (%r): DIMENSIONS R,C = %d,%d should be %d,%d )r2fprintfr,r9r:rMrdrer1r0rfr6r-UNICODE_LITERALr=r>r4r@r?rAr3rrr.r/)rgrrumaxrowsumaxcolscrangerlorhiclochir: s_cell_types s_cell_valuess_cell_xf_indexes s_fmt_infouboundrrtrowrlennextras rktidy_dimensionszSheet.tidy_dimensionsRsr >>Q   7 DJJ  ""KB**H**H++ &%+"S#sS232(2AK+K++AJ11K  K+c5d}|xs|jdk\}|xs|jdk\}d}d}|j}|j|_tttt t tf}|j} t} |j} |j} |j} | xr |j}i}i}d} | \}}}|tk(r| d|dd\}}}}| ||d||n|tk(r_| d|\}}}}| ||t |j"|||r|jj%|}|re||j&||f<nR|t(k(re| d|dd \}}}| t*kr,t-|d |j.xs|j1d }nt3|d d }| ||t ||n|t4k(r8| d|dd \}}}| t*krt7|d |j.xs|j1d \}}t9||}|dz }g}t;|D](}|j=td |||dz|dz }*|t?|k(suJtA|d d \}}td |||dzd}|dz }g}t;|D](}|j=td |||dz|dz }*|t?|k(sJ| ||t ||||j&||f<n|tBk(r,| d|dd \}}}tE|d d}| ||d||nm|tFk(rk| d |dd\}} | d |dd\}!d}t;| |!dzD]8}| d |||dz\}tE||dz|d z}|d z }| ||d||:n|tHk(rc| s| d|dd\}}"}#d|cxkr|jJks*ntMd||jJfz|jNR|"|#f}$|j%|$}%|%tQx||$<}%|"dz|%_)|"dz dz|%_*|#dz|%_+|#dz dz|%_,|#dz dz|%_-|#d z dz|%_.|#dz dz|%_/|#dz dz|%_0|#dz dz|%_1|#dz dz|%_2|%j^sd|%_0|%|jf|< |rtMd||"|#|jN|%jm|jNd|jj|fzn|tnvrh| dk\r| d |dd\}}}}&}'n=| d!k\r| d |dd\}}}}&}'n%| d"|dd\}}}(}&}'|jq|(||}|rAti|jNd#||| d |d$d%d})ts||d%d|)tt||d|&|&d d'd(k(rt9|&d}*|*dk(r*d}+ |j\},}-}.|,tvk(s |,txk(rd}+n|,tk(r1| d)|.dd\}/}0}1}2}3}4|rti|jNd*|/|0|1|2|3nf|,tk(rK| d+|.dd\}/}0}1}2}5}4|rHti|jNd,|/|0|1|2|5ts||.dd|4tzd|||-n|,|vrt}d.|,z|+s0|j\},}6}.|,tvtxfvrt}d/|,z|j|.}|j||t ||n|*dk(r t9|&d}7| ||t|7|n|*dk(r t9|&d}7| ||t|7|nZ|*d0k(r| ||t d1|nCt}d2|*z| d3|&d}| ||d||n|tk(r/| d4|dd'\}}}}7}8ttf|8}9| |||9|7|n|tk(r| st}:| d5|dd\};}<|:_E|:_0}'d|;cxkr |k(sJtd?|dd=}=g}>|=D]+}?t;d@D]}@|>j=|?dz|?dz}?-t|>|_On|tk(r&| s| d|dd \}}}| ||td1|n|tk(r_| s |dz }B| dA|Bz|}C|Cdd\}}D|Cd}E|B|Edz|Dz k(sJd}t;DEdzD]}| ||td1C||dz }n|tk(s |tk(r|dk(r | dBkr | dC|dd'}Fn | dD|ddE}FdF\|_Y|_ZF\|_[|_\| dGvrF|jjr0|jjs|jj|rti|jNdH|jj|j|j|jn|tk(r|j|n~|tk(r|j|nb|tk(rd}|rtMdI|jNd}n<|tk(r%|j|}G|GrGj}Hnd}Hn |tk(r|j|||n|tk(r |j|}I|IrHrI|H<d}Hn|tk(r|j||n|tk(r|j|n|tvr~| d |dd\}J}K|Kd@k7r.tMdJ||j|z dz JKfz|jN |j\}L}}|Ltk(rn|rtMdK|jNn|tk(r|j| n|tk(r>d}t|j||| d'L}t|j||| d'L}||k( sJ|tk(r4| d)|dd\}/}0}1}2}3}4| rtMdM|/|0|1|2|3|jN nf|tk(rN| d+|dd\}/}0}1}2}5}4| rGtMdN|/|0|1|2|5|jNts||dd|4tzd|- n|tk(r| s | dBk\sJtdO|ddE\}M}N}O}P}Q}R|jdk\rAti|jNdP|jj|jMNtOPdzQRdzg}St|S|dE| d'L}|jdk\ rsti|jNdQt?SdRjdS|SD n:|tk(r\| s tdT|dd\}T}U}V}W}'|'dUz dz}X|'dz dz}Y|'dz dz}Z|jdk\rti|jNdVTUVW|'XYZ dE}XrqtdW|||dXz\ }[}\}]}^}_}`}a}b}c|adkDdz}d|\dkDdz}e|adkDdz}f|\dkDdz}g|jdk\r!ti|jNdY[]^_`bcdefg |dXz }Yr|d'z }Zr|dz }|||Vz}h||Vz }|r)Vr'ti|jNdZt|hV| dd[|||Wz}i||Wz }||k(sJ| rW rti|jNd\t|iW| dd[ n|tk(r|dk(rtd |dd\}?|_~nJ|dk(r,td |\|_~d}?ti|jNd]nd}?ti|jNd^||?dz|_|?dz dz|_|?dz dz|_|?d0z dz|_ n1|tk(rP| st|j|d| d'L}|rti|jNd_|dz d'z||k( sJd`||fz|t k(r| dBk\r5|dk\r0tda|dd\}j|_|_|_|_|_nl| d!k\sJtd|dd \}j|_|_tdb|d dc|_t|jj|jdd|_tD]\}k}lt||kjdz|jdz}j n|t k(rktd |\}m}nd}C|nrmdeznz}CdCcxkrdfksCOLINFO sheet #%d cols %d-%d: wid=%d xf_index=%d flags=0x%04x z===z*** ERROR *** STANDARDWIDTH"s z<8i z<%dHr&z found EOF) addr_sizezARRAY:zSHRFMLA (main):z<6Hz *** WARNING: Ignoring CONDFMT (conditional formatting) record *** in Sheet %d (%r). *** %d CF record(s); needs_recalc_or_redraw = %d *** Bounding box is %s z#*** %d individual range(s): *** %s z, c3,K|] }t|ywr)r)rcoordss rkrzSheet.read..s!K6+v"6!Kszr)xf_list_xf_epilogue_done xf_epiloguer0XL_HLINK handle_hlink XL_QUICKTIPhandle_quicktipXL_EOFXL_OBJ handle_objidXL_MSO_DRAWINGhandle_msodrawingetcXL_TXO handle_txoXL_NOTE handle_note XL_FEAT11 handle_feat11bofcodes XL_COUNTRYhandle_countryXL_LABELRANGES)unpack_cell_range_address_list_update_posrLrK XL_CONDFMTrXL_CFrXL_DEFAULTROWHEIGHTrDrErFrGrHXL_MERGEDCELLSrM XL_WINDOW2rVrWrXr_r`rYr colour_maprTrUXL_SCLraXL_PANEvert_split_poshorz_split_poshorz_split_first_visiblevert_split_first_visiblesplit_active_panehas_pane_recordXL_HORIZONTALPAGEBREAKSrOXL_VERTICALPAGEBREAKSrP XL_FORMAT XL_FORMAT2 handle_formatXL_FONT XL_FONT_B3B4 handle_fontXL_STYLE handle_style XL_PALETTEhandle_paletteXL_BUILTINFMTCOUNThandle_builtinfmtcountXL_XF4XL_XF3XL_XF2 handle_xf XL_DATEMODEhandle_datemode XL_CODEPAGEhandle_codepage XL_FILEPASShandle_filepassXL_WRITEACCESShandle_writeaccessXL_IXFErb XL_NUMBER_B2 XL_INTEGERfloat XL_LABEL_B2 XL_BOOLERR_B2 XL_BLANK_B2XL_EFONT handle_efont XL_ROW_B2 XL_COLWIDTHXL_COLUMNDEFAULTmin XL_WINDOW2_B2zipintrrupdate_cooked_mag_factors)urgbkDEBUGr blah_rows blah_formulasroldposXL_SHRFMLA_ETC_ETC self_put_cell local_unpackbk_get_record_partsbvrdo_sst_rich_textrowinfo_sharing_dicttxos eof_foundrcdata_lendatarrrsrdsstindexrunliststrgposnrtr mulrk_row mulrk_first mulrk_lastbits1bits2keyr result_strflagsr fmlalen first_byte gotstringrc2 data2_lendata2row1xrownxcol1xcolnx array_flagstokslennfmlas _unused_lenris_errcelltyc first_colx last_colxiguffrFbitsjshowgcwnitemsresult mul_firstmul_last dim_tuple saved_obj saved_obj_idtxoversionboftypecodenum_CFs needs_recalcbrowx1browx2bcolx1bcolx2olistcf_typecmp_opsz1sz2 font_block bord_block patt_block font_height font_optionsweight escapement underlinefont_colour_indextwo_bitsfont_esc font_underl font_styleposture font_canc cancellationfmla1fmla2optionsri_unused_defvalnumden num_breaksrtr?offset attr_namescharsu rkreadz Sheet.reads+!+0T^^q0  ~~ *k }    11   ''#A(A(A! !4!6 B$ Y+7wSb *J'dHadD$8<{"1=gt1L.dHhdD,8I8I(8SU]^# 77;;HEGCJ22D$<@x'3FD1I'F$dH**(q"++2UASASAU^_`D)$!J9VZ[\]_V`>a;D$*e2X>J9VZ[\]_V`>a;D$*e@LZY]^_`bYc@d=D$ J $ 8 8D$ OH DLL*FdS*4b=a@G%b$rs)Wn"$QTCa?k1!*:a=!9J!Q$% 464G4G4I1CE"i/3,3F,- !$$0s$L!QueUK#0$+DLL:S(-ueUK%Q"% !2$0U3BZ$H!LueUFG#0$+DLL:[(-ueUF%L$5b%*gO_-.d$T%S!$,>!>&/$fil$l'n!n )686I6I6K3Ce"9l*CC&/0VY\0\&] ]#::5A dD,hO#q )*Q- 8%dD/5(S#q )*Q- 8%dD-Q#q%dD,HM'(UXb(bcc%T:6q9A!$dAx@z!6B8TRTSTX6V3dHeV*=9&AdD&%Bz!I"8T#2Y7B Iqw EJ:):s:S%y128< F5##:y{;;Dcz5-.D$$T*; Y ZAGGQZZQV FF4<<F6~%$0tBQx$@! ''q=74:TXT`T`a&24bq&B#"v2~%~AayK///ud1Rj1!#D#BZ# 4!8, ##!:x'3FD!H'E$dHdD-XF{"!Q%fvot<"(!*i!":A !9999"9hl;D!$mRM1HC|#r]':q=7 ,Wd1Qi @I ,Wd1Rj AI)-& DJ1:.%$))*;*;DIID_D_II))+ F TYY x!!$'{"$$T*v% 1 E v OOD1 Y\\l%)l~%))"h=vood+<),D&#'Lw  t,y""4(x#/tAay#A d?ir||h6:GWMNTXT`T`b+-+>+>+@(D(Dv~% 0t||Dz!!!$'~%?))4bA@))4bAh&x cr;AueUK (E5% RVR^R^_z! T#2Y7<ueUFG +UE5%VZVbVbc%b$rs)W>Nd$TCz!Rxx5$q*-Fvvvv>>Q& 3 TYY#FF1HffQhG?4R16>>Q& #E  !KU!KK u39(D2J3O0c5#rkQ. #rkQ. #rkQ. >>Q& U c5"J KQRtvz{~@CDG@GwHLII[, I&(K"*Q,!!3J+a/14G!)A 2I$01$4#9L~~* LLS(Y-x&L3JC1HC1HCSS)s CDLL*<= UCaaHSS)s h&CDLL*<= UCaaH**q=4:5$r(4K1D$1]/5dD/A,D+DDLL?@DDLL> "48!80+/19/'7;qyAo37;qyAo3~%?%%tQaADLL2S1WNDhH5hGHz!8B{D"I6 /1H2A:8O8vtBQx0/1H/5fd1Qi/HD,1E ,,d.F.Fa2QD. -="(D.D$! 4MG"v!%.S!CiC/FV*s*! 3f#{{C56!% !F&,#w8T"1X. ''11*'($..*4bq: !QbBh%781<HHH7.33::LtTWX[\]X]<_`a)))$/7]!-dD!9!!V>VW`bfhl>mn;&,8$q),L)D$ (q"++2UASASAU^_`D!$lD$BZBZ[dfjlpBqr=(;G SW;X8D$ 5&-}=fEF!$feT=U=UV_aegk=lm;&#X,8$r(,K)D$ !$mRAYAYZceikoApq8^OOD)9_#X)5j$q*)M&D%:t':'::L#T%8%89:@D N!!AI#%!R*4b=a@#'#;#;dQU\^il#;#m$(BK #'#;#;ItRT#;#U %2C,005Ay8? A,S1A#(6>05 q/@,16.%- ./D$$T*!he$,,Gt||#< T?R#RT;&#X&vtBQx81J 5%2K)956<@LLJ! &z9Q; ?(4#3#33 $ 0 0 6A ' A56D,,T2"' ( LLE KKY ++#X,8Ra,I)J  LLM KKY  =Y=#=C)956<@LLJ%( 3$7 &z9 = .!"Q$*;%?@ vtAbz2/1H7/5fd2bk/JD,1E ,,d.F.Fa2QD.ef>;; *+, ,  &&( rmc|j}|j}|dk\dz}tdd|dz z|d|d}|}|dkr|jxs|j }d}t d} |dk\rt ||dz} d| }|dz }t||d} | | z } |t| z }||k(r| S||kDrd ||fz} t| |j\} }}| tk7rtd | zd}) Nrr<BHrr&r)latin_1 utf_16_lez,STRING/CONTINUE: expected %d chars, found %dz2Expected CONTINUE record; found record-type 0x%04X) r*r)rr r!rr%unicoderr8r XL_CONTINUE)rgrrrrnchars_expectedrenc nchars_foundrflagchunkmsgrrs rkr9zSheet.string_record_contentssB    YY(a tFQJ'7!7gvGJ 7++5!3!3!5C  $Rx f.2.t4! DM3/E eOF CJ &L. o-E& 56n$$&$7$7$9 !B T[ H2MOOF%rmcdtxs|jdkD}|jr|jd|_n|j|_|j }d|cxkrdks@n|r0t d|j|j fz|j|j}||_ y|jd|_ n|j|_ |j}|sd}nLd|cxkrdksAn|r1t d|jd |j|j|j}||_y) Nrr%rrzGWARNING *** WINDOW2 rcd sheet %d: Bad cached_normal_view_mag_factor: %drr$zWARNING *** WINDOW2 rcd sheet z,: Bad cached_page_break_preview_mag_factor: ) rr2rrar]r`rr1r,r^r_)rgrzooms rkrzSheet.update_cooked_mag_factorss**  * *""*+!+    "yy  '"C#IaL1D8C$;zz)'(ijj**C  9; ;D  6Yq\*T11}}$$((3 ?J  DLL"BItUY Zyy  bz U))O3QS8)T U'')'< rmc d}|xs|jdk\}|j}t|j}|j ||}||_|jj ||r!|j|jd|zd|j|jvr|jr9d}t|j||j |j|jt|jttd} | |j|j<|jj | t t"tt"t$t"t&t(t*t"i} |j|j} | | j,} | |j.|j <||j0|<|S)Nrrz=== Faked XF %d ===z======rfooterz1ERROR *** XF[%d] unknown format key (%d, 0x%04x) General)r2r)rrPfake_XF_from_BIFF20_cell_attrrrr3r, format_key format_maprr FUNr format_listFNUXL_CELL_NUMBERFGEFDT XL_CELL_DATEFTXtyper8rc) rgr rrrr)rtxfrfmtcellty_from_fmttyrs rkrzSheet.insert_new_BIFF20_xfSsd+!+yy$,,  / / 5 A  B  GGDLL)>)DXG V == /}}J c R]]BMMC_Y-GHC-0DOOBMM *    # #C (       oobmm,"388,5;%%bkk2,/y) rmcddlm}m}m}m}m}|}||_d|j _d|j _d|j _ ||_ d|j_ d|j_ d|j_ d|j_||_||_t#d|\} } } | dz|_| dzdz |_t)|j | d| d z|j _d D]I\} } | | zrd \}}nd \}}t-|j| d z|t-|j| dz|K|j}| dzrd|_nd|_d|_d|_d||_d|j _d|j _gd}|D]}d|zdz}t-||d|S)Nr)XF XFAlignmentXFBorder XFBackground XFProtectionrrrr))rr# cell_locked)rformula_hiddenr))rleft)rright)rtop)r#bottom)rrr _colour_index _line_styler8rr)rrr)formatfont alignmentborder background protection__flag) formattingr1r2r3r4r5rC indent_level shrink_to_fittext_directionrDdiag_up diag_downdiag_colour_indexdiag_line_stylerErFrr" font_indexr@ hor_alignrU fill_patternbackground_colour_indexpattern_colour_indexparent_style_index vert_alignrotation)rgr rr1r2r3r4r5r- prot_bitsfont_and_format halign_etcmaskside colour_index line_stylebg attr_stems attr_stemris rkr!z#Sheet.fake_XF_from_BIFF20_cell_attrrsUU T"} $% !%& "&' #J   &' #$% !$ $ 39&)3L0OZ'$. (4/A5  y+  ",d!2 \ AJD$D +/( j+/( j BIIto5| D BIItm3Z @  A]]   BOBO%&""# +E 2"#  !  $ !I?W,D Ba  ! rmc2|js tdy)Nz9Feature requires open_workbook(..., formatting_info=True))r3r8rs rkrzSheet.req_fmt_infos##WX X$rmc.|j|jdk\rB|jj|d}| |jS|j |j S|jdk\rQ|j |r|j o|j S|jj|d}|E|jS|jdk(r*|jj|d}| |jS|j|jdzSy)a Determine column display width. :param colx: Index of the queried column, range 0 to 255. Note that it is possible to find out the width that will be used to display columns with no cell information e.g. column IV (colx=255). :return: The column width that will be used for displaying the given column by Excel, in units of 1/256th of the width of a standard character (the digit zero in the first font). .. versionadded:: 0.6.1 r&Nrrr(i)rr*rIrr?rCrFrB)rgrscolinfos rkcomputed_column_widthzSheet.computed_column_widths      "&&**46G"}}$!!-)))   " $xx~%%1---**..tT:&"==(   " $&&**46G"}}$    '##c) )rmc  trtd|jt|}t }t d|dd\|_|_|_|_ }}}|dk(sJ|dk(sJtrtd|z|jd}d}|d zr|||\|_ }|d zr|||\|_ }|d zr`|d zsZt d |||dz\} trt|jd| |dz }| dk(rtd|_t d|||dzd} |dz }t|||| zd|_tr5t|jd|j t|j |j j#d} trtd| z|j|j d| |_d| d zz} || z }| | z } |||| z}|| z }tr%t|jd|j || | | | dvsWJ| dk(rtd|_t d|||dz\}} |dz }d |z|||| zd z z}trt|jd!|||| z }|d"z }t d#|||dzd}trtd$|z|j|dz }|r>t d#|||dzd}|dz }|dz }t||||zd}||z }||_ns||_nkt|jd%| nS|d&zd'k(r"td(|_|||\|_}n)|d)zd*k(rtd+|_ntd,|_|d*zr|||\|_}tr"|j'd-.td/||fz||z } | dkDrBt|jd0|j d z|jd z| t)|| dn| dkr t+d1|j,j/|t1|j |jd zD];}t1|j|jd zD]}||j2||f<=y)2Nz === hyperlink ===rz .get_nul_terminated_unicodesZc#c!en-a014B 1HCSR*5cr:B 2ICs7Nrmrr8rr(z<16srz clsid=%r syK urlrirrrjzinitial url=%r len=%d z endpos=%drz9url=%r extra=%r nbytes=%d true_nbytes=%d extra_nbytes=%d )rsFz local filez7fENAFF T>9$G AHf aK'E/FD $<=FEgdllL5A bLF[[)/d6&1*&=>qA!  'VFVO(Dj Q '$,,0I1==Z]^_^k^kZlm++F3% f 44<<H ! gv 6 6A:. +%% 3 !&,)>? ,& V z6;  $w...]](6#)%fVaZ1H#I &! #h.fVf_q=P1QQ '$,,0LhXab& " D$vfqj"9:1=%" 4<<@! d6&1*&=>qABaKFaKF$+D ,Dj$QMbLF$1AM$-AM &>F u_ %$U+AF$>tV$L !AM6 u_ !$Z0AF$Y/AF S=!;D&!I AJ  FF/F 0 , /DD E"V+ !   P! ! T<-.)*  A XY Y ""1%177AGGAI. 3Dqww 2 312""4:. 3 3rmc(td|dd\}}}}}|tk(sJ|jsJ|jd}||||f|j|j|j |j fk(sJ|dddk(sJt|ddd|_y)N<5Hrr"rsr ) rrUrZrxryrzr{rquicktip)rgrrcxrxryrzr{r!s rkrVzSheet.handle_quicktipBs*0Sb *B'UE5%k!!!""""    #ueU+!''177/SSSSBCyK'''T"R[+6 rmc Htsyd}|jdkryt}d}||krtd|||dz\}}} |dz} |dz dz} | dk(rd} n| } |r8t ||| dzd|j t |j d || | | | |d k(r?| d k(sJtd ||dz|dz| z\|_|_|_ |_ |_ n|dk(r| dk(sJ|dz|k(sJ || dzz }||kr||k(sJ|r|j|j ddyy)Nrr&rz IHnE4CE?3FB &@#r2NdCaadllKaxtb>>DLL*cdTzaxx-3FDQs2v$>$@ !CE+% %%eQ  M58$B]FzQ&1 5eQ&QME6Y& && FFeOF  H !$(II$>$>$@ !CE+% %%q=A% %%aA. WeCA&67##**3/1   !!a&9&9"&=a&@G&K##B'!!a&9&9"&=a&@G&K  FF4<<F E !%%DLL 9rmc^tsytd|dd\ }}}}}}}} } } |dk(sJ| dk(sJ|dk(sJ|dk(sJ|dk(sJ| |k(sJt|jd|||| td|dd\} } }}}}}}}}}}}}}td | | |||||||||||||fz|j y) Nz 2}:<{}>)rAr1r0rs rk__repr__zSheet.__repr__@s!((dii@@rm)rNr)r)F__name__ __module__ __qualname____doc__r0r)r9r:rIrJrKrLrMrNrBrCrDrErFrGrHrSrFrZr[r\rprqrrrsrtrurOrPrlruryr|rorrrr__iter__rrrrrrcolrr5r7rr9rr5rr!rrfrTrVr\rYr`r^rbrrmrkrr2s& D D E EKK" 6L0 KM  #'  &*" &*"J C NM MNN ! !O M#h  -,>,  +@ H;< $ $ $ $ C ;Jz9vFVO b<+=Z D>2hY&Pn3`7%KP6p13f0d.M`Armrc eZdZy)rNrrrrrmrkrrDrmrc eZdZy)rNrrrmrkrrHrrmrc eZdZy)rNrrrmrkrrLrrmrcHeZdZdZedZdZdZdZdZ dZ dZ edZ y)rz Represents a user "comment" or "note". Note objects are accessible through :attr:`Sheet.cell_note_map`. .. versionadded:: 0.7.2 rrN) rrrrrrrrsrrrrrrrrmrkrrPsJR FJ D J D D 2 Drmrc8eZdZdZdZdZdZdZdZdZ dZ dZ dZ dZ y)rwz Contains the attributes of a hyperlink. Hyperlink objects are accessible through :attr:`Sheet.hyperlink_list` and :attr:`Sheet.hyperlink_map`. .. versionadded:: 0.7.2 N)rrrrrxryrzr{r,r~r|r}rrrrmrkrwrwssM E E E E DK DF HHrmrwc t|d}|dzr(td|\}|dz}|dzr|dz St|Stddtt |dzz|dd z\}|dzr|dz S|S) NrrrsrgY@rsr)r%rr BYTES_LITERALchr)rk_strrirs rkr(r(s fQi E qyT6" a 19u9 QxD+ c%#+6F(GG&QRST+U V 19u9 rmemptyrr1xldateboolerrorblankc&eZdZdZgdZddZdZy)rpa Contains the data for one cell. .. warning:: You don't call this class yourself. You access :class:`Cell` objects via methods of the :class:`Sheet` object(s) that you found in the :class:`~xlrd.book.Book` object that was returned when you called :func:`~xlrd.open_workbook` Cell objects have three attributes: ``ctype`` is an int, ``value`` (which depends on ``ctype``) and ``xf_index``. If ``formatting_info`` is not enabled when the workbook is opened, ``xf_index`` will be ``None``. The following table describes the types of cells and how their values are represented in Python. .. raw:: html
Type symbol Type number Python value
XL_CELL_EMPTY 0 empty string ''
XL_CELL_TEXT 1 a Unicode string
XL_CELL_NUMBER 2 float
XL_CELL_DATE 3 float
XL_CELL_BOOLEAN 4 int; 1 means TRUE, 0 means FALSE
XL_CELL_ERROR 5 int representing internal Excel codes; for a text representation, refer to the supplied dictionary error_text_from_code
XL_CELL_BLANK 6 empty string ''. Note: this type will appear only when open_workbook(..., formatting_info=True) is used.
rrrNc.||_||_||_yrr)rgrrrs rkrlz Cell.__init__ s    rmc|j"t|jd|jSt|jd|jd|jdS)N:z (XF:))r ctype_textrrrs rkrz Cell.__repr__ sB == (4djjA A&0&aR Width and default formatting information that applies to one or more columns in a sheet. Derived from ``COLINFO`` records. Here is the default hierarchy for width, according to the OOo docs: In BIFF3, if a ``COLINFO`` record is missing for a column, the width specified in the record ``DEFCOLWIDTH`` is used instead. In BIFF4-BIFF7, the width set in this ``COLINFO`` record is only used, if the corresponding bit for this column is cleared in the ``GCW`` record, otherwise the column width set in the ``DEFCOLWIDTH`` record is used (the ``STANDARDWIDTH`` record is always ignored in this case [#f1]_). In BIFF8, if a ``COLINFO`` record is missing for a column, the width specified in the record ``STANDARDWIDTH`` is used. If this ``STANDARDWIDTH`` record is also missing, the column width of the record ``DEFCOLWIDTH`` is used instead. .. [#f1] The docs on the ``GCW`` record say this: If a bit is set, the corresponding column uses the width set in the ``STANDARDWIDTH`` record. If a bit is cleared, the corresponding column uses the width set in the ``COLINFO`` record for this column. If a bit is set, and the worksheet does not contain the ``STANDARDWIDTH`` record, or if the bit is cleared, and the worksheet does not contain the ``COLINFO`` record, the ``DEFCOLWIDTH`` record of the worksheet will be used instead. xlrd goes with the GCW version of the story. Reference to the source may be useful: see :meth:`Sheet.computed_column_width`. .. versionadded:: 0.6.1 rr"N) rrrrr?rrrrrrrmrkr>r>$ s2#N EHFIMIrmr>c*eZdZdZerdZdZdZdZy)r+z Height and default formatting information that applies to a row in a sheet. Derived from ``ROW`` records. .. versionadded:: 0.6.1 r,r-rr.rr/r0rr1r2cd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ yrrrs rkrlzRowinfo.__init__x sa #'" *.&  $%)! '+# '+#rmc |j|j|j|j|j|j |j |j|j|jf Srrrs rk __getstate__zRowinfo.__getstate__ s` KK  # #     * * KK   % % MM  ' '  ' '  rmc |\ |_|_|_|_|_|_|_|_|_|_ yrr)rgstates rk __setstate__zRowinfo.__setstate__ sE  K  #    * K   % M  '  'rmN) rrrr _USE_SLOTSrrlr"r%rrmrkr+r+b s#  &+P   rmr+N)0 __future__rrstructrrbiffhrIr r formular r r rr timemachinerrrT BaseObjectrrrrrrwr(r&r'r$r(r)r*r+r/r-rr:r;rLrrpr empty_cellr>r&r+rrmrkr.s! &#4  8O AJO Ad@   J  J  : F4 4p& 7&H(V77 MY:MY^-!4 5 9j9v XjXrm