ó
    ‰*£h÷?  ã                   óÐ  • S r SSKJr  SSKJr  SSKJr  SSKJrJr  SSK	J
r
  SSKJrJrJr  SSKJrJr  SS	KJr  SS
KJr  SSKJrJr  SSKJrJrJr  SSKJr  SSKJ r   SSK!J"r"J#r#  SSK$J%r%  SSK&J'r'  SSK(J)r)  SSK*J+r+  SSK,J-r-J.r.J/r/  SSK0J1r1J2r2  SSK3J4r4  SSK5J6r6  SSK7J8r8  SSK9J:r:  SSK;J<r<  SSK=J>r>  SSK?J@r@  SSKAJBrB  S\-  rCS \-  rDS!\-  rES"\-  rFS#\-  rGS$\-  rHS%\-  rIS&\-  rJS'\-  rKS(\-  rLS)\-  rMS*\-  rNS+\-  rOS,\-  rPS-\-  rQS.\-  rRS/\-  rSS0\-  rTS1\-  rUS2\-  rVS3\-  rWS4\-  rXS5\-  rYS6\-  rZS7\-  r[S8\-  r\S9\-  r]S:\-  r^S; r_S< r` " S= S>5      ra " S? S@5      rbgA)BzReader for a single worksheet.é    )Úcopy)Úwarn)Ú	iterparse)ÚCellÚ
MergedCell)ÚText)ÚColumnDimensionÚRowDimensionÚSheetFormatProperties)ÚSHEET_MAIN_NSÚ	EXT_TYPES)ÚConditionalFormatting)Ú
Translator)Úget_column_letterÚcoordinate_to_tuple)Ú
from_excelÚfrom_ISO8601ÚWINDOWS_EPOCH)ÚExtensionList)ÚCellRichTexté   )ÚDataTableFormulaÚArrayFormula)Ú
AutoFilter)ÚHeaderFooter)ÚHyperlinkList)Ú
MergeCells)ÚPageMarginsÚPrintOptionsÚPrintPageSetup)ÚRowBreakÚColBreak)ÚSheetProtection)ÚScenarioList)ÚSheetViewList)ÚDataValidationList)ÚTablePartList)ÚWorksheetProperties)ÚSheetDimension)ÚRelatedz{%s}cz{%s}vz{%s}fz{%s}mergeCellsz{%s}isz{%s}colz{%s}rowz{%s}conditionalFormattingz{%s}legacyDrawingz{%s}sheetProtectionz
{%s}extLstz{%s}hyperlinksz{%s}tablePartsz{%s}printOptionsz{%s}pageMarginsz{%s}pageSetupz{%s}headerFooterz{%s}autoFilterz{%s}dataValidationsz{%s}sheetPrz{%s}sheetViewsz{%s}sheetFormatPrz{%s}rowBreaksz{%s}colBreaksz{%s}scenariosz{%s}sheetDataz{%s}dimensionz{%s}customSheetViewsc                 óR   • SU ;   d  SU ;   d  SU ;   a  [        U 5      $ [        U 5      $ )z,Convert numbers as string to an int or floatÚ.ÚEÚe)ÚfloatÚint)Úvalues    ÚW/home/mande/repo/quber/.venv/lib/python3.13/site-packages/openpyxl/worksheet/_reader.pyÚ_cast_numberr3   P   s)   € à
ˆeƒ|�s˜e“| s¨e£|Ü�U‹|ÐÜˆu‹:Ðó    c                 óœ   • [         R                  " U 5      =(       d    Sn[        U5      S:X  a  [        US   [        5      (       a  US   nU$ )z7
Parse inline string and preserve rich text formatting
Ú r   r   )r   Ú	from_treeÚlenÚ
isinstanceÚstr)Úelementr1   s     r2   Úparse_richtext_stringr<   W   sB   € ô ×"Ò" 7Ó+×1¨r€EÜ
ˆ5ƒz�Qƒœ: e¨A¡h´×4Ñ4Ø�a‘ˆØ€Lr4   c                   óŠ   • \ rS rSrS\\" 5       \" 5       S4S jrS rS rS r	S r
S rS	 rS
 rS rS rS rS rS rS rSrg)ÚWorkSheetParseréa   Fc                 óx  • S =U l         U l        X@l        Xl        X l        X0l        0 U l        S=U l        U l        [        5       U l
        XPl        X`l        0 U l        0 U l        / U l        SU l        [#        5       U l        / U l        S U l        S U l        [-        5       U l        [1        5       U l        Xpl        g )Nr   F)Úmin_rowÚmin_colÚepochÚsourceÚshared_stringsÚ	data_onlyÚshared_formulaeÚrow_counterÚcol_counterr'   ÚtablesÚdate_formatsÚtimedelta_formatsÚrow_dimensionsÚcolumn_dimensionsÚnumber_formatsÚkeep_vbar   Ú
hyperlinksÚ
formattingÚlegacy_drawingÚmerged_cellsr!   Ú
row_breaksr"   Ú
col_breaksÚ	rich_text)ÚselfÚsrcrE   rF   rC   rK   rL   rW   s           r2   Ú__init__ÚWorkSheetParser.__init__c   sª   € ð '+Ð*ˆŒ�t”|ØŒ
ØŒØ,ÔØ"ŒØ!ˆÔØ./Ð/ˆÔ˜4Ô+Ü#“oˆŒØ(ÔØ!2ÔØ ˆÔØ!#ˆÔØ ˆÔØˆŒÜ'›/ˆŒØˆŒØ"ˆÔØ ˆÔÜ"›*ˆŒÜ"›*ˆŒØ"�r4   c              #   óÄ  #   • [         U R                  [        U R                  [        U R
                  [        U R                  [        U R                  [        U R                  [        U R                  [        U R                  0n[         S["        4[$        S[&        4[(        S[*        4[,        S[.        4[0        S[2        4[4        S[6        4[8        S[:        4[<        S[>        4[@        S	[B        4[D        S
[F        4[H        S[J        4[L        S[N        4[P        S[R        40n[U        U RV                  5      nU H¡  u  pEURX                  nXa;   a  X   " U5        UR[                  5         M2  Xb;   a9  X&   nUS   R]                  U5      n[_        XS   U5        UR[                  5         Mp  U[`        :X  d  M|  U Rc                  U5      n	UR[                  5         U	v •  M£     g 7f)NÚprint_optionsÚpage_marginsÚ
page_setupr   Úauto_filterÚdata_validationsÚsheet_propertiesÚviewsÚsheet_formatÚ	scenariosrJ   rQ   rT   r   r   )2ÚCOL_TAGÚparse_column_dimensionsÚPROT_TAGÚparse_sheet_protectionÚEXT_TAGÚparse_extensionsÚCF_TAGÚparse_formattingÚ
LEGACY_TAGÚparse_legacyÚROW_BREAK_TAGÚparse_row_breaksÚCOL_BREAK_TAGÚparse_col_breaksÚCUSTOM_VIEWS_TAGÚparse_custom_viewsÚ	PRINT_TAGr   ÚMARGINS_TAGr   ÚPAGE_TAGr    Ú
HEADER_TAGr   Ú
FILTER_TAGr   ÚVALIDATION_TAGr&   ÚPROPERTIES_TAGr(   Ú	VIEWS_TAGr%   Ú
FORMAT_TAGr   ÚSCENARIOS_TAGr$   Ú	TABLE_TAGr'   ÚHYPERLINK_TAGr   Ú	MERGE_TAGr   r   rD   ÚtagÚclearr7   ÚsetattrÚROW_TAGÚ	parse_row)
rX   Ú
dispatcherÚ
propertiesÚitÚ_r;   Útag_nameÚpropÚobjÚrows
             r2   ÚparseÚWorkSheetParser.parse}   s�  é € ä�T×1Ñ1Ü�d×1Ñ1Ü�T×*Ñ*Ü�D×)Ñ)Ü˜×)Ñ)Ü˜4×0Ñ0Ü˜4×0Ñ0Ü˜d×5Ñ5ð	ˆ
ô ˜¬Ð6Ü˜.¬+Ð6Ü�|¤^Ð4Ü˜¬Ð6Ü˜¬
Ð3ÜÐ/Ô1CÐDÜÐ/Ô1DÐEÜ˜¤Ð/Ü˜Ô)>Ð?Ü˜K¬Ð6Ü˜¤-Ð0Ü˜L¬-Ð8Ü˜¬
Ð3ð
ˆ
ô" �t—{‘{Ó#ˆã‰JˆAØ—{‘{ˆHØÓ%ØÒ$ WÔ-Ø—‘–ØÓ'Ø!Ñ+�Ø˜1‘g×'Ñ'¨Ó0�Ü˜ 1™g sÔ+Ø—‘–ØœWÕ$Ø—n‘n WÓ-�Ø—‘”Ø”	ò ùs   ‚F0G Æ6*G c                 ó   • [        U R                  5      nU Hc  u  p#UR                  [        :X  a$  [        R
                  " U5      nUR                  s  $ UR                  [        :X  a    gUR                  5         Me     g)z0
Get worksheet dimensions if they are provided.
N)	r   rD   rƒ   ÚDIMENSION_TAGr)   r7   Ú
boundariesÚDATA_TAGr„   )rX   rŠ   Ú_eventr;   Údims        r2   Úparse_dimensionsÚ WorkSheetParser.parse_dimensions¬   s\   € ô �t—{‘{Ó#ˆã!‰OˆFØ�{‰{œmÓ+Ü$×.Ò.¨wÓ7�Ø—~‘~Ò%à—‘¤Ó(áØ�M‰MŽOò  "r4   c                 ó@  • UR                  SS5      nUR                  S5      nUR                  SS5      nU(       a  [        U5      nUS:X  a  S nOUR                  [        S 5      =(       d    S nU(       a  [	        U5      u  pgXpl        O,U =R
                  S-  sl        U R                  U R
                  pvU R                  (       d*  UR                  [        5      b  SnU R                  U5      nOúUbš  US:X  a?  [        U5      nX@R                  ;   a$  S	n [        XPR                  X@R                  ;   S
9nO³O²US:X  a  U R&                  [        U5         nO“US:X  a  [)        [        U5      5      nOxUS:X  a  SnOoUS	:X  a  [+        U5      nO]US:X  aW  UR                  [,        5      n	U	b?  SnU R.                  (       a  [1        U	5      nO [2        R4                  " U	5      R6                  nXgXRUS.$ ! [         ["        4 a    SU SU S3n[%        U5        SnSn N0f = f)NÚtÚnÚrÚsr   Ú	inlineStrr   ÚfÚd)Ú	timedeltazCell z* is marked as a date but the serial value zG is outside the limits for dates. The cell will be treated as an error.r.   z#VALUE!Úbr:   )r�   Úcolumnr1   Ú	data_typeÚstyle_id)Úgetr0   ÚfindtextÚ	VALUE_TAGr   rI   rH   rF   ÚfindÚFORMULA_TAGÚparse_formular3   rK   r   rC   rL   ÚOverflowErrorÚ
ValueErrorr   rE   Úboolr   ÚINLINE_STRINGrW   r<   r   r7   Úcontent)
rX   r;   r¥   Ú
coordinater¦   r1   r�   r¤   ÚmsgÚchilds
             r2   Ú
parse_cellÚWorkSheetParser.parse_cell½   s   € Ø—K‘K  SÓ)ˆ	Ø—[‘[ Ó%ˆ
Ø—;‘;˜s AÓ&ˆÞÜ˜8“}ˆHà˜Ó#Ø‰Eà×$Ñ$¤Y°Ó5×=¸ˆEæÜ-¨jÓ9‰KˆCØ%Õà×Ò Ñ!ÕØ×*Ñ*¨D×,<Ñ,<�à�~�~ '§,¡,¬{Ó";Ñ"GØˆIØ×&Ñ& wÓ/‰EàÑØ˜CÓÜ$ UÓ+�Ø×0Ñ0Ó0Ø #�Ið*Ü *Ø!§:¡:¸×E[ÑE[Ñ9[ñ!™ð 1ð ˜cÓ!Ø×+Ñ+¬C°«JÑ7‘Ø˜cÓ!ÜœS ›ZÓ(‘Ø˜eÓ#Ø‘	Ø˜cÓ!Ü$ UÓ+�øà˜+Ó%ØŸ™¤]Ó3�ØÑ$Ø #�IØ—~—~Ü 5°eÓ <™ä $§¢¨uÓ 5× =Ñ =˜à°EÐ]eÑfÐføô/ *¬:Ð6ó *Ø"'¨
 |Ð3]Ð^cÐ]dð  elð  o˜Ü˜Sœ	Ø$'˜	Ø )šð	*ús   Ä G2 Ç2(HÈHc                 óö  • UR                  [        5      nUR                  S5      nUR                  S5      nSnUR                  b  XRR                  -  nUS:X  a  [	        UR                  S5      US9nU$ US:X  ab  UR                  S5      nX`R
                  ;   a"  U R
                  U   nUR                  U5      nU$ US:w  a  [        XT5      U R
                  U'   U$ US	:X  a  [        S
0 UR                  D6nU$ )z3
possible formulae types: shared, array, datatable
r›   r�   Ú=ÚarrayÚref)rº   ÚtextÚsharedÚsiÚ	dataTable© )
rª   r«   r§   r»   r   rG   Útranslate_formular   r   Úattrib)rX   r;   ÚformulaÚformula_typer²   r1   ÚidxÚtranss           r2   r¬   ÚWorkSheetParser.parse_formula÷   sý   € ð —,‘,œ{Ó+ˆØ—{‘{ 3Ó'ˆØ—[‘[ Ó%ˆ
ØˆØ�<‰<Ñ#Ø—\‘\Ñ!ˆEà˜7Ó"Ü  W§[¡[°Ó%7¸eÑDˆEð ˆð ˜XÓ%Ø—+‘+˜dÓ#ˆCØ×*Ñ*Ó*Ø×,Ñ,¨SÑ1�Ø×/Ñ/°
Ó;�ð ˆð ˜#“Ü,6°uÓ,I�×$Ñ$ SÑ)ð
 ˆð ˜[Ó(Ü$Ñ6 w§~¡~Ñ6ˆEàˆr4   c                 ó€   • [        UR                  5      n[        [        US   5      5      nX2S'   X R                  U'   g )NÚminÚindex)ÚdictrÁ   r   r0   rN   )rX   ÚcolÚattrsr¤   s       r2   rg   Ú'WorkSheetParser.parse_column_dimensions  s8   € Ü�S—Z‘ZÓ ˆÜ"¤3 u¨U¡|Ó#4Ó5ˆØˆg‰Ø).×Ñ˜vÒ&r4   c                 ó^  • [        UR                  5      nSU;   a   [        US   5      U l        OU =R                  S-  sl        SU l        U Vs1 s H  oDR                  S5      (       a  M  UiM     nnUSS1-
  (       a!  X R                  [        U R                  5      '   U Vs/ s H  o`R                  U5      PM     nnU R                  U4$ ! [         aG    [        US   5      nUR                  5       (       a  [        U5      U l         NÊ[	        US    S35      ef = fs  snf s  snf )Nr�   z is not a valid row numberr   r   Ú{Úspans)rÊ   rÁ   r0   rH   r®   r/   Ú
is_integerrI   Ú
startswithrM   r:   rµ   )rX   r�   rÌ   ÚvalÚkÚkeysÚelÚcellss           r2   r‡   ÚWorkSheetParser.parse_row  s  € Ü�S—Z‘ZÓ ˆà�%‹<ðPÜ#& u¨S¡z£?�Õ ð ×Ò Ñ!ÕØˆÔá Ó:š5�a¯©°S×(9—™5ˆÐ:Ø�3˜�.× à9>×Ñ¤ D×$4Ñ$4Ó 5Ñ6á/2Ó3ªs¨—‘ Ö$©sˆÐ3Ø×Ñ Ð&Ð&øô! ó PÜ˜E #™JÓ'�Ø—>‘>×#Ñ#Ü'*¨3£x�DÖ$ä$¨¨c©
 |Ð3MÐ%NÓOÐOðPüò ;ùò
 4s#   �C ÁD%Á.D%Â'D*Ã=D"ÄD"c                 ó¶   •  [         R                  " U5      nU R                  R                  U5        g ! [         a  nSU 3n[        U5         S nAg S nAff = f)NzKFailed to load a conditional formatting rule. It will be discarded. Cause: )r   r7   rR   ÚappendÚ	TypeErrorr   )rX   r;   Úcfr.   r³   s        r2   rm   Ú WorkSheetParser.parse_formatting3  sP   € ð	Ü&×0Ò0°Ó9ˆBØ�O‰O×"Ñ" 2Õ&øÜó 	Ø_Ð`aÐ_bÐcˆCÜ��I‰Iûð	ús   ‚14 ´
A¾AÁAc                 óˆ   • [         R                  " U5      nUR                  S5      nUb  UR                  US5        X l        g )NÚpasswordT)r#   r7   r§   Úset_passwordÚ
protection)rX   r;   rá   rß   s       r2   ri   Ú&WorkSheetParser.parse_sheet_protection<  s;   € Ü$×.Ò.¨wÓ7ˆ
Ø—;‘;˜zÓ*ˆØÑØ×#Ñ# H¨dÔ3Ø$�r4   c                 óì   • [         R                  " U5      nUR                   HN  n[        R                  " UR
                  R                  5       S5      nSR                  U5      n[        U5        MP     g )NÚUnknownz2{0} extension is not supported and will be removed)	r   r7   Úextr   r§   ÚuriÚupperÚformatr   )rX   r;   ÚextLstr.   Úext_typer³   s         r2   rk   Ú WorkSheetParser.parse_extensionsD  sQ   € Ü×(Ò(¨Ó1ˆØ—”ˆAÜ —}’} Q§U¡U§[¡[£]°IÓ>ˆHØF×MÑMÈhÓWˆCÜ�ŽIò r4   c                 óR   • [         R                  " U5      nUR                  U l        g ©N)r*   r7   ÚidrS   )rX   r;   rŽ   s      r2   ro   ÚWorkSheetParser.parse_legacyL  s   € Ü×Ò Ó(ˆØ!Ÿf™fˆÕr4   c                 ó<   • [         R                  " U5      nX l        g rí   )r!   r7   rU   ©rX   r;   Úbrks      r2   rq   Ú WorkSheetParser.parse_row_breaksQ  ó   € Ü× Ò  Ó)ˆØ�r4   c                 ó<   • [         R                  " U5      nX l        g rí   )r"   r7   rV   rñ   s      r2   rs   Ú WorkSheetParser.parse_col_breaksV  rô   r4   c                 ó@   • [        5       U l        [        5       U l        g rí   )r!   rU   r"   rV   )rX   r;   s     r2   ru   Ú"WorkSheetParser.parse_custom_views[  s   € ô #›*ˆŒÜ"›*ˆ�r4   )rV   rI   rN   rF   rK   rC   rR   rQ   rP   rS   rT   rB   rA   rO   rá   rW   rU   rH   rM   rG   rE   rD   rJ   rL   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   ÚsetrZ   r�   r˜   rµ   r¬   rg   r‡   rm   ri   rk   ro   rq   rs   ru   Ú__static_attributes__r¿   r4   r2   r>   r>   a   s\   † à6;Ø$±3³5Ù#&£5°Eô#ò4,ò^ò"7gòtò8/ò'ò2ò%òò%ò
ò
õ
%r4   r>   c                   óZ   • \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rS rSrg)ÚWorksheetReaderib  z,
Create a parser and apply it to a workbook
c           	      ó¾   • Xl         [        X#XAR                  R                  UR                  R                  UR                  R
                  U5      U l        / U l        g rí   )Úwsr>   ÚparentrC   Ú_date_formatsÚ_timedelta_formatsÚparserrJ   )rX   r  Ú
xml_sourcerE   rF   rW   s         r2   rZ   ÚWorksheetReader.__init__g  sD   € ØŒÜ% jØŸ9™9Ÿ?™?¨B¯I©I×,CÑ,CØ—	‘	×,Ñ,¨ió9ˆŒð ˆ�r4   c           	      óÊ  • U R                   R                  5        H„  u  pU Hy  nU R                  R                  R                  US      n[        U R                  US   US   US9nUS   Ul        US   Ul        XPR                  R                  US   US   4'   M{     M†     U R                  R                  (       a&  U R                  R                  U R                  l
        g g )Nr¦   r�   r¤   )r�   r¤   Ústyle_arrayr1   r¥   )r  r�   r  r  Ú_cell_stylesr   Ú_valuer¥   Ú_cellsÚmax_rowÚ_current_row)rX   rÄ   r�   ÚcellÚstyleÚcs         r2   Ú
bind_cellsÚWorksheetReader.bind_cellso  s¹   € ØŸ™×)Ñ)Ö+‰HˆCÛ�ØŸ™Ÿ™×3Ñ3°D¸Ñ4DÑE�Ü˜Ÿ™ d¨5¡k¸$¸x¹.ÐV[Ñ\�Ø ™=�”Ø" ;Ñ/�”Ø@A—‘—‘  U¡¨T°(©^Ð<Ó=ó ñ ,ð �7‰7�>�>Ø#'§7¡7§?¡?ˆD�G‰GÕ ð r4   c                 ó  • U R                   R                   Hm  nUR                   HZ  nUR                  b2  U R                  R
                  R                  UR                     Ul        X R                  R                  U'   M\     Mo     g rí   )	r  rR   ÚrulesÚdxfIdr  r  Ú_differential_stylesÚdxfÚconditional_formatting)rX   rÜ   Úrules      r2   Úbind_formattingÚWorksheetReader.bind_formatting|  s^   € Ø—+‘+×(Ô(ˆBØŸœ�Ø—:‘:Ñ)Ø#Ÿw™wŸ~™~×BÑBÀ4Ç:Á:ÑN�D”HØ59—‘×.Ñ.¨rÓ2ó !ò )r4   c                 óú   • U R                   R                  R                   HW  nU R                  R                  R                  UR                  5      nU R                  R                  UR                  5        MY     g rí   )	r  rJ   Ú	tablePartr  Ú_relsr§   rî   rÚ   ÚTarget)rX   r›   Úrels      r2   Úbind_tablesÚWorksheetReader.bind_tables„  sN   € Ø—‘×#Ñ#×-Ô-ˆAØ—'‘'—-‘-×#Ñ# A§D¡DÓ)ˆCØ�K‰K×Ñ˜sŸz™zÖ*ò .r4   c                 óf  • SSK Jn  SSKJn  U R                  R
                  (       d  g / nU R                  R
                  R                   HL  nU" U R                  UR                  5      nU R                  R                  U5        UR                  U5        MN     U" U5      U R                  l        g )Nr   )ÚMultiCellRange)ÚMergedCellRange)Úopenpyxl.worksheet.cell_ranger&  Úopenpyxl.worksheet.merger'  r  rT   Ú	mergeCellr  rº   Ú_clean_merge_rangerÚ   )rX   r&  r'  ÚrangesÚcrÚmcrs         r2   Úbind_merged_cellsÚ!WorksheetReader.bind_merged_cellsŠ  s|   € Ý@Ý<Ø�{‰{×'×'ØàˆØ—+‘+×*Ñ*×4Ô4ˆBÙ! $§'¡'¨2¯6©6Ó2ˆCØ�G‰G×&Ñ& sÔ+Ø�M‰M˜#Öñ 5ñ  .¨fÓ5ˆ�‰Õr4   c                 óL  • U R                   R                  R                   Hï  nUR                  (       a@  U R                  R
                  R                  UR                  5      nUR                  Ul        SUR                  ;   a<  U R                  UR                      H  nU H  n [        U5      Ul        M     M     M   U R                  UR                     n[        U[        5      (       a  U R                  UR                  5      nXl        Mñ     g ! [         a     M  f = f)NÚ:)r  rQ   Ú	hyperlinkrî   r  r   r§   r!  Útargetrº   r   ÚAttributeErrorr9   r   Únormalize_merged_cell_linkr²   )rX   Úlinkr"  r�   r  s        r2   Úbind_hyperlinksÚWorksheetReader.bind_hyperlinks˜  sÔ   € Ø—K‘K×*Ñ*×4Ô4ˆDØ�w�wØ—g‘g—m‘m×'Ñ'¨¯©Ó0�Ø!Ÿj™j�”Ø�d—h‘h‹àŸ7™7 4§8¡8Ô,�CÛ #˜ð!Ü-1°$«Z˜DžNó !$ó -ð —w‘w˜tŸx™xÑ(�Ü˜d¤J×/Ñ/Ø×:Ñ:¸4¿?¹?ÓK�DØ!%–ò! 5øô  .ó !Ú ð!ús   Â'DÄ
D#	Ä"D#	c                 ó˜   • U R                   R                   H0  nX;   d  M
  U R                   R                  " UR                  S   6 s  $    g)z‚
Returns the appropriate cell to which a hyperlink, which references a merged cell at the specified coordinates,
should be bound.
r   N)r  rT   r  Útop)rX   ÚcoordÚrngs      r2   r6  Ú*WorksheetReader.normalize_merged_cell_link«  s8   € ð
 —7‘7×'Ô'ˆCØ�|Ø—w‘w—|’| S§W¡W¨Q¡ZÐ0Ò0ò (r4   c                 ó,  • U R                   R                  R                  5        Hl  u  pSU;   a4  [        US   5      nU R                  R
                  R                  U   US'   [        U R                  40 UD6U R                  R                  U'   Mn     g )Nr  )r  rN   Úitemsr0   r  r  r  r	   )rX   rË   ÚcdÚkeys       r2   Úbind_col_dimensionsÚ#WorksheetReader.bind_col_dimensions´  st   € Ø—{‘{×4Ñ4×:Ñ:Ö<‰GˆCØ˜"‹}Ü˜"˜W™+Ó&�Ø"Ÿg™gŸn™n×9Ñ9¸#Ñ>��7‘Ü-<¸T¿W¹WÑ-KÈÑ-KˆD�G‰G×%Ñ% cÓ*ò	 =r4   c                 ó>  • U R                   R                  R                  5        Hu  u  pSU;   a4  [        US   5      nU R                  R
                  R                  U   US'   [        U R                  40 UD6U R                  R                  [        U5      '   Mw     g )Nrž   )r  rM   r@  r0   r  r  r  r
   )rX   r�   ÚrdrB  s       r2   Úbind_row_dimensionsÚ#WorksheetReader.bind_row_dimensions¼  sw   € Ø—{‘{×1Ñ1×7Ñ7Ö9‰GˆCØ�b‹yÜ˜"˜S™'“l�ØŸ'™'Ÿ.™.×5Ñ5°cÑ:��3‘Ü/;¸D¿G¹GÑ/JÀrÑ/JˆD�G‰G×"Ñ"¤3 s£8Ó,ò	 :r4   c                 óz   • S H5  n[        U R                  US 5      nUc  M  [        U R                  X5        M7     g )N)r]   r^   r_   r   r`   ra   rb   rc   rd   rU   rV   re   rS   rá   )Úgetattrr  r…   r  )rX   rÔ   Úvs      r2   Úbind_propertiesÚWorksheetReader.bind_propertiesÄ  s5   € óˆAô ˜Ÿ™ Q¨Ó-ˆAØ‹}Ü˜Ÿ™ Ö&òr4   c                 ó  • U R                  5         U R                  5         U R                  5         U R                  5         U R	                  5         U R                  5         U R                  5         U R                  5         g rí   )r  r/  r8  r  rC  rG  r#  rL  )rX   s    r2   Úbind_allÚWorksheetReader.bind_allÐ  s`   € Ø�‰ÔØ×ÑÔ Ø×ÑÔØ×ÑÔØ× Ñ Ô"Ø× Ñ Ô"Ø×ÑÔØ×ÑÕr4   )r  rJ   r  N)rù   rú   rû   rü   Ú__doc__rZ   r  r  r#  r/  r8  r6  rC  rG  rL  rO  rþ   r¿   r4   r2   r   r   b  s@   † ñòò
3ò:ò+ò6ò&ò&1òLòKò	'õr4   r   N)crQ  r   Úwarningsr   Úopenpyxl.xml.functionsr   Úopenpyxl.cellr   r   Úopenpyxl.cell.textr   Úopenpyxl.worksheet.dimensionsr	   r
   r   Úopenpyxl.xml.constantsr   r   Úopenpyxl.formatting.formattingr   Úopenpyxl.formula.translater   Úopenpyxl.utilsr   r   Úopenpyxl.utils.datetimer   r   r   Úopenpyxl.descriptors.excelr   Úopenpyxl.cell.rich_textr   rÂ   r   r   Úfiltersr   Úheader_footerr   r3  r   Úmerger   Úpager   r   r    Ú	pagebreakr!   r"   rá   r#   Úscenarior$   rc   r%   Údatavalidationr&   Útabler'   r‰   r(   Ú
dimensionsr)   Úrelatedr*   ÚCELL_TAGr©   r«   r‚   r°   rf   r†   rl   rn   rh   rj   r�   r€   rv   rw   rx   ry   rz   r{   r|   r}   r~   rp   rr   r   r•   r“   rt   r3   r<   r>   r   r¿   r4   r2   Ú<module>ri     s·  ðñ %Ý Ý õ -÷ +Ý #÷ñ ÷õ AÝ 1÷÷ LÑ KÝ 4Ý 0ç 3Ý Ý 'Ý $Ý ß ;Ñ ;ß )Ý 'Ý "Ý  Ý .Ý  Ý +Ý &Ý ð �]Ñ"€Ø�mÑ#€	Ø˜Ñ%€Ø˜}Ñ,€	Ø˜=Ñ(€Ø
�mÑ
#€Ø
�mÑ
#€Ø	$ }Ñ	4€Ø  =Ñ0€
Ø  =Ñ0€Ø
˜Ñ
&€Ø  =Ñ0€Ø˜}Ñ,€	Ø Ñ.€	Ø -Ñ/€Ø˜]Ñ*€Ø -Ñ/€
Ø Ñ-€
Ø&¨Ñ6€Ø Ñ.€Ø˜}Ñ,€	Ø  =Ñ0€
Ø -Ñ/€Ø -Ñ/€Ø -Ñ/€Ø˜]Ñ*€Ø -Ñ/€Ø)¨MÑ9Ð òò÷~%ñ ~%÷Bvò vr4   