+
    Ĝi?                        R t ^ RIHt ^ RIHt ^ RIHt ^ RIHtHt ^ RI	H
t
 ^ RIHtHtHt ^ RIHtHt ^ RIHt ^ R	IHt ^ R
IHtHt ^ RIHtHtHt ^ RIHt ^ RIH t  ^RI!H"t"H#t# ^RI$H%t% ^RI&H't' ^RI(H)t) ^RI*H+t+ ^RI,H-t-H.t.H/t/ ^RI0H1t1H2t2 ^RI3H4t4 ^RI5H6t6 ^RI7H8t8 ^RI9H:t: ^RI;H<t< ^RI=H>t> ^RI?H@t@ ^RIAHBtB R],          tCR],          tDR],          tER ],          tFR!],          tGR"],          tHR#],          tIR$],          tJR%],          tKR&],          tLR'],          tMR(],          tNR)],          tOR*],          tPR+],          tQR,],          tRR-],          tSR.],          tTR/],          tUR0],          tVR1],          tWR2],          tXR3],          tYR4],          tZR5],          t[R6],          t\R7],          t]R8],          t^R9 t_R: t` ! R; R<4      ta ! R= R>4      tbR?# )@z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                X    RV 9   g   RV 9   g   RV 9   d   \        V 4      # \        V 4      # )z,Convert numbers as string to an int or float.Ee)floatint)values   &c/Users/mibo/.openclaw/workspace/.venv-ak/lib/python3.14/site-packages/openpyxl/worksheet/_reader.py_cast_numberr1   P   s)    
e|se|se|U|u:    c                    \         P                  ! V 4      ;'       g    Rp\        V4      ^8X  d'   \        V^ ,          \        4      '       d
   V^ ,          pV# )z7
Parse inline string and preserve rich text formatting
 )r   	from_treelen
isinstancestr)elementr/   s   & r0   parse_richtext_stringr:   W   sE     ""7+11rE
5zQ:eAh44aLr2   c                      a  ] tR t^at o R]]! 4       ]! 4       R3R ltR tR tR t	R t
R tR tR	 tR
 tR tR tR tR tR tRtV tR# )WorkSheetParserFc                z   R ;V n         V n        W@n        Wn        W n        W0n        / V n        ^ ;V n        V n        \        4       V n
        WPn        W`n        / V n        / V n        . V n        RV n        \#        4       V n        . V n        R V n        R V n        \-        4       V n        \1        4       V n        Wpn        R # )NF)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srcrB   rC   r@   rH   rI   rT   s   &&&&&&&&r0   __init__WorkSheetParser.__init__c   s     '+*t|
,"!.//4+#o(!2 !# '/" "*"*"r2   c              #    "   \         V P                  \        V P                  \        V P
                  \        V P                  \        V P                  \        V P                  \        V P                  \        V P                  /p\         R \"        3\$        R\&        3\(        R\*        3\,        R\.        3\0        R\2        3\4        R\6        3\8        R\:        3\<        R\>        3\@        R\B        3\D        R	\F        3\H        R
\J        3\L        R\N        3\P        R\R        3/p\U        V PV                  4      pV F  w  rEVPX                  pWa9   d!   W,          ! V4       VP[                  4        K7  Wb9   dF   W&,          pV^,          P]                  V4      p\_        W^ ,          V4       VP[                  4        K  V\`        8X  g   K  V Pc                  V4      p	VP[                  4        V	x  K  	  R# 5i)print_optionspage_margins
page_setupr   auto_filterdata_validationssheet_propertiesviewssheet_format	scenariosrG   rN   rQ   N)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   rA   tagclearr5   setattrROW_TAG	parse_row)
rU   
dispatcher
propertiesit_r9   tag_namepropobjrows
   &         r0   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{{#JA{{H%$W-'!+1g''01gs+W$nnW-	 s   GG4	+G4c                   \        V P                  4      pV Ff  w  r#VP                  \        8X  d%   \        P
                  ! V4      pVP                  u # VP                  \        8X  d    R# VP                  4        Kh  	  R# )z0
Get worksheet dimensions if they are provided.
N)	r   rA   r   DIMENSION_TAGr'   r5   
boundariesDATA_TAGr   )rU   r   _eventr9   dims   &    r0   parse_dimensions WorkSheetParser.parse_dimensions   s\     t{{#!OF{{m+$..w7~~%(MMO  "r2   c           
        VP                  R R4      pVP                  R4      pVP                  R^ 4      pV'       d   \        V4      pVR8X  d   RpM VP                  \        R4      ;'       g    RpV'       d   \	        V4      w  rgWpn        M0V ;P
                  ^,          un        V P                  V P
                  rvV P                  '       g-   VP                  \        4      e   RpV P                  V4      pEMVe   VR8X  dD   \        V4      pW@P                  9   d(   Rp \        WPP                  W@P                  9   R7      pMMVR8X  d   V P&                  \        V4      ,          pMVR8X  d   \)        \        V4      4      pM}VR8X  d   RpMsVR8X  d   \+        V4      pM`VR8X  dZ   VP                  \,        4      p	V	eA   RpV P.                  '       d   \1        V	4      pM \2        P4                  ! V	4      P6                  pRVRVRVRVRV/#   \         \"        3 d    R	T R
T R2p\%        T4       RpRp L7i ; i)tnrs	inlineStrN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!br8   r   columnr/   	data_typestyle_id)getr.   findtext	VALUE_TAGr   rF   rE   rC   findFORMULA_TAGparse_formular1   rH   r   r@   rI   OverflowError
ValueErrorr   rB   boolr   INLINE_STRINGrT   r:   r   r5   content)
rU   r9   r   
coordinater   r/   r   r   msgchilds
   &&        r0   
parse_cellWorkSheetParser.parse_cell   s   KKS)	[[%
;;sA&8}H#E$$Y5==E-j9KC%!**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~~~ 5e < $u 5 = =c8FGE;yR\]eff/ *:6 *"'
|3]^c]d  el  oS	$'	 )	*s   &#H )I ?I c                   VP                  \        4      pVP                  R4      pVP                  R4      pRpVP                  e   WRP                  ,          pVR8X  d   \	        VP                  R4      VR7      pV# VR8X  di   VP                  R4      pW`P
                  9   d'   V P
                  V,          pVP                  V4      pV# VR8w  d   \        WT4      V P
                  V&   V# VR	8X  d   \        R
/ VP                  B pV# )z3
possible formulae types: shared, array, datatable
r   r   =arrayref)r   textsharedsi	dataTable )
r   r   r   r   r   rD   translate_formular   r   attrib)rU   r9   formulaformula_typer   r/   idxtranss   &&      r0   r   WorkSheetParser.parse_formula   s     ,,{+{{3'[[%
<<#\\!E7" W[[%7eDE  X%++d#C***,,S1//
;  #,6u,I$$S)
  [($6w~~6Er2   c                    \        VP                  4      p\        \        VR ,          4      4      pW2R&   W P                  V&   R# )minindexN)dictr   r   r.   rK   )rU   colattrsr   s   &&  r0   rd   'WorkSheetParser.parse_column_dimensions  s8    SZZ "3uU|#45g).v&r2   c                   \        VP                  4      pR V9   d    \        VR ,          4      V n        MV ;P                  ^,          un        ^ V n        V Uu0 uF  qDP                  R4      '       d   K  VkK  	  ppVR R0,
          '       d"   W P                  \        V P                  4      &   V Uu. uF  q`P                  V4      NK  	  ppV P                  V3#   \         dQ    \        TR ,          4      pTP                  4       '       d   \        T4      T n         L\	        TR ,           R24      hi ; iu upi u upi )r   z is not a valid row number{spans)r   r   r.   rE   r   r-   
is_integerrF   
startswithrJ   r8   r   )rU   r   r   valkkeyselcellss   &&      r0   r   WorkSheetParser.parse_row  s   SZZ %<P#&uSz?  ! :5aS(95:3.  9>D$4$4 56/23s$s3&&!  PE#J'>>##'*3xD$$c
|3M%NOOP ;
 4s$   C D<7D<5EAD9#D9c                     \         P                  ! V4      pV P                  P                  V4       R#   \         d   pR T 2p\        T4        Rp?R# Rp?ii ; i)zKFailed to load a conditional formatting rule. It will be discarded. Cause: N)r   r5   rO   append	TypeErrorr   )rU   r9   cfr,   r   s   &&   r0   rj    WorkSheetParser.parse_formatting3  sP    	&009BOO""2& 	_`a_bcCII	s   15 A AAc                    \         P                  ! V4      pVP                  R 4      pVe   VP                  VR4       W n        R# )passwordNT)r!   r5   r   set_password
protection)rU   r9   r   r   s   &&  r0   rf   &WorkSheetParser.parse_sheet_protection<  s;    $..w7
;;z*##Hd3$r2   c                    \         P                  ! V4      pVP                   FN  p\        P                  ! VP
                  P                  4       R 4      pRP                  V4      p\        V4       KP  	  R# )Unknownz2{0} extension is not supported and will be removedN)	r   r5   extr   r   uriupperformatr   )rU   r9   extLstr,   ext_typer   s   &&    r0   rh    WorkSheetParser.parse_extensionsD  sQ    ((1A }}QUU[[]I>HFMMhWCI r2   c                T    \         P                  ! V4      pVP                  V n        R # N)r(   r5   idrP   )rU   r9   r   s   && r0   rl   WorkSheetParser.parse_legacyL  s    (!ffr2   c                >    \         P                  ! V4      pW n        R # r   )r   r5   rR   rU   r9   brks   && r0   rn    WorkSheetParser.parse_row_breaksQ        )r2   c                >    \         P                  ! V4      pW n        R # r   )r    r5   rS   r   s   && r0   rp    WorkSheetParser.parse_col_breaksV  r   r2   c                B    \        4       V n        \        4       V n        R # r   )r   rR   r    rS   )rU   r9   s   &&r0   rr   "WorkSheetParser.parse_custom_views[  s     #*"*r2   )rS   rF   rK   rC   rH   r@   rO   rN   rM   rP   rQ   r?   r>   rL   r   rT   rR   rE   rJ   rD   rB   rA   rG   rI   N)__name__
__module____qualname____firstlineno__r   setrW   r   r   r   r   rd   r   rj   rf   rh   rl   rn   rp   rr   __static_attributes____classdictcell____classdict__s   @r0   r<   r<   a   sd     6;$35#&5E#4,^"7gt8/'2%%


% %r2   r<   c                   f   a  ] tR tRt o RtR tR tR tR tR t	R t
R	 tR
 tR tR tR tRtV tR# )WorksheetReaderib  z,
Create a parser and apply it to a workbook
c           	         Wn         \        W#WAP                  P                  VP                  P                  VP                  P
                  V4      V n        . V n        R # r   )wsr<   parentr@   _date_formats_timedelta_formatsparserrG   )rU   r  
xml_sourcerB   rC   rT   s   &&&&&&r0   rW   WorksheetReader.__init__g  sD    %j99??BII,C,C		,,i9 r2   c           	        V P                   P                  4        F  w  rV F  pV P                  P                  P                  VR ,          ,          p\        V P                  VR,          VR,          VR7      pVR,          Vn        VR,          Vn        WPP                  P                  VR,          VR,          3&   K  	  K  	  V P                  P                  '       d(   V P                  P                  V P                  n
        R# R# )r   r   r   )r   r   style_arrayr/   r   N)r  r   r  r  _cell_stylesr   _valuer   _cellsmax_row_current_row)rU   r   r   cellstylecs   &     r0   
bind_cellsWorksheetReader.bind_cellso  s    ))+HC33D4DEd5k$x.V[\=";/@AUT(^<=  , 77>>>#'77??DGG  r2   c                   V P                   P                   Fr  pVP                   F_  pVP                  e7   V P                  P
                  P                  VP                  ,          Vn        W P                  P                  V&   Ka  	  Kt  	  R # r   )	r  rO   rulesdxfIdr  r  _differential_stylesdxfconditional_formatting)rU   r   rules   &  r0   bind_formattingWorksheetReader.bind_formatting|  s^    ++((B::)#ww~~BB4::NDH59..r2 ! )r2   c                    V P                   P                  P                   FW  pV P                  P                  P                  VP                  4      pV P                  P                  VP                  4       KY  	  R # r   )	r  rG   	tablePartr  _relsr   r   r   Target)rU   r   rels   &  r0   bind_tablesWorksheetReader.bind_tables  sN    ##--A''--##ADD)CKKszz* .r2   c                l   ^ RI Hp ^ RIHp V P                  P
                  '       g   R# . pV P                  P
                  P                   FL  pV! V P                  VP                  4      pV P                  P                  V4       VP                  V4       KN  	  V! V4      V P                  n        R# )    )MultiCellRange)MergedCellRangeN)openpyxl.worksheet.cell_ranger'  openpyxl.worksheet.merger(  r  rQ   	mergeCellr  r   _clean_merge_ranger   )rU   r'  r(  rangescrmcrs   &     r0   bind_merged_cells!WorksheetReader.bind_merged_cells  s    @<{{'''++**44B!$''2662CGG&&s+MM# 5  .f5r2   c                f   V P                   P                  P                   F  pVP                  '       dA   V P                  P
                  P                  VP                  4      pVP                  Vn        R VP                  9   dA   V P                  VP                  ,           F  pV F  p \        V4      Vn        K  	  K  	  K  V P                  VP                  ,          p\        V\        4      '       d   V P                  VP                  4      pWn        K  	  R#   \         d     K  i ; i):N)r  rN   	hyperlinkr   r  r   r   r!  targetr   r   AttributeErrorr7   r   normalize_merged_cell_linkr   )rU   linkr"  r   r  s   &    r0   bind_hyperlinksWorksheetReader.bind_hyperlinks  s    KK**44Dwwwggmm''0!jjdhh77488,,C #!-1$ZDN !$ - wwtxx(dJ//::4??KD!%! 5  . ! !s   -D!!D0	/D0	c                    V P                   P                   F6  pW9   g   K  V P                   P                  ! VP                  ^ ,          !  u # 	  R# )z
Returns the appropriate cell to which a hyperlink, which references a merged cell at the specified coordinates,
should be bound.
N)r  rQ   r  top)rU   coordrngs   && r0   r7  *WorksheetReader.normalize_merged_cell_link  s8    
 77''C|ww||SWWQZ00 (r2   c                @   V P                   P                  P                  4        Fu  w  rR V9   d=   \        VR ,          4      pV P                  P
                  P                  V,          VR &   \        V P                  3/ VB V P                  P                  V&   Kw  	  R# )r  N)r  rK   itemsr.   r  r  r  r   )rU   r   cdkeys   &   r0   bind_col_dimensions#WorksheetReader.bind_col_dimensions  st    {{44::<GC"}"W+&"ggnn99#>7-<TWW-K-KDGG%%c*	 =r2   c                R   V P                   P                  P                  4        F~  w  rR V9   d=   \        VR ,          4      pV P                  P
                  P                  V,          VR &   \        V P                  3/ VB V P                  P                  \        V4      &   K  	  R# )r   N)r  rJ   rA  r.   r  r  r  r	   )rU   r   rdrC  s   &   r0   bind_row_dimensions#WorksheetReader.bind_row_dimensions  sw    {{11779GCby"S'l''..55c:3/;DGG/Jr/JDGG""3s8,	 :r2   c                ~    R F6  p\        V P                  VR4      pVf   K   \        V P                  W4       K8  	  R# )rZ   N)rZ   r[   r\   r   r]   r^   r_   r`   ra   rR   rS   rb   rP   r   )getattrr  r   r  )rU   r   vs   &  r0   bind_propertiesWorksheetReader.bind_properties  s5    A Q-A}&r2   c                   V P                  4        V P                  4        V P                  4        V P                  4        V P	                  4        V P                  4        V P                  4        V P                  4        R # r   )r  r0  r9  r  rD  rH  r#  rM  )rU   s   &r0   bind_allWorksheetReader.bind_all  s`       "  "r2   )r  rG   r  N)r   r   r   r   __doc__rW   r  r  r#  r0  r9  r7  rD  rH  rM  rP  r   r   r   s   @r0   r   r   b  sH     
3:+6&&1LK	' r2   r   N)crR  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   r4  r   merger   pager   r   r   	pagebreakr   r    r   r!   scenarior"   r`   r#   datavalidationr$   tabler%   r   r&   
dimensionsr'   relatedr(   CELL_TAGr   r   r   r   rc   r   ri   rk   re   rg   r~   r}   rs   rt   ru   rv   rw   rx   ry   rz   r{   rm   ro   r|   r   r   rq   r1   r:   r<   r   r   r2   r0   <module>rj     s   %   - + #  A 1 L K 4 0 3  ' $  ; ; ) ' "   .   + &  ]"m#	%},	=(
m
#
m
#	$}	4 =0
 =0

& =0},	.	-/]*-/
-
&6.},	 =0
-/-/-/]*-/)M9 ~% ~%Bv vr2   