+
    ĜiM                     d    R t ^RIHt ^ RIHtHt ^ RIHt ^RIH	t	 ^ RI
Ht R t ! R R4      tR	# )
zRead worksheets on-demand
)	Worksheet)ReadOnlyCell
EMPTY_CELL)get_column_letter)WorkSheetParser)DefinedNameDictc                 :    \        V . 4      pVP                  4       # N)r   parse_dimensions)sourceparsers   & f/Users/mibo/.openclaw/workspace/.venv-ak/lib/python3.14/site-packages/openpyxl/worksheet/_read_only.pyread_dimensionr      s    VR(F""$$    c                   B  a  ] tR t^t o ^t^tR;tt]P                  t	]P                  t
]P                  t]P                  t]P                  t]P                  tR tR tR tRR ltRR ltR tRR ltR	 tR
 t]R 4       t]R 4       t]R 4       t]R 4       tRtV tR# )ReadOnlyWorksheetNc                    Wn         W n        R V n        RV n        W0n        W@n        V P                  4        \        4       V n        R# )visibleN)	parenttitlesheet_state_current_row_worksheet_path_shared_strings	_get_sizer   defined_names)selfparent_workbookr   worksheet_pathshared_stringss   &&&&&r   __init__ReadOnlyWorksheet.__init__#   s=    %
$ --,.r   c                    V P                  4       p\        V. 4      pVP                  4       pVP                  4        Ve   Vw  V n        V n        V n        V n        R # R # r	   )_get_sourcer   r
   close_min_column_min_row_max_column_max_row)r   srcr   
dimensionss   &   r   r   ReadOnlyWorksheet._get_size.   sV      b),,.
		!OYLDdmT-=t} "r   c                `    V P                   P                  P                  V P                  4      # )z0Parse xml source on demand, must close after use)r   _archiveopenr   r   s   &r   r#   ReadOnlyWorksheet._get_source7   s#    {{##(()=)=>>r   c              #  4  "   \         pV'       d   RpT;'       g    V P                  pT;'       g    V P                  p. pVe   V3V^,           V,
          ,          pTp^p	V P                  4       ;_uu_ 4       p
\	        V
V P
                  V P                  P                  V P                  P                  V P                  P                  V P                  P                  R7      pVP                  4        FW  w  rVe	   W8  d    MJ\        W4       F  pV^,          pVx  K  	  W8:  g   K8  V P                  WW54      pV^,          pVx  KY  	  RRR4       Ve(   WI8  d    \        W^,           4       F  pVx  K	  	  R# R# R#   + '       g   i     L=; i5i)z\
The source worksheet file may have columns or rows missing.
Missing cells will be created.
N)	data_onlyepochdate_formatstimedelta_formats)r   
max_columnmax_rowr#   r   r   r   r2   r3   _date_formats_timedelta_formatsparserange_get_row)r   min_colmin_rowmax_colr7   values_onlyfiller	empty_rowcounteridxr)   r   row_s   &&&&&&        r   _cells_by_rowReadOnlyWorksheet._cells_by_row<   sY    
 F,,T__))T\\		Wq[7%:;I3$S%)%9%9/3{{/D/D+/;;+<+<26++2K2K7;{{7U7UWF #LLN&3= w,AqLG#O -
 >--gKCqLGI +  . 7=7AI. / $1/  s/   FFAF9B/F-#F5FF	Fc                r   V'       g   V'       g   R# T;'       g    VR,          R,          pV^,           V,
          p\         .V,          pV'       d   R.V,          pV FK  pVR,          pY(u;8:  d
   V8:  g   K  M K   W,
          p	VR,          Wi&   V'       d   K=  \        V 3/ VB Wi&   KM  	  \        V4      # )zD
Make sure a row contains always the same number of cells or values
columnNvalue )r   r   tuple)
r   rE   r=   r?   r@   	row_widthnew_rowcellrC   rD   s
   &&&&&     r   r<   ReadOnlyWorksheet._get_rowi   s     7I//c"gh/aK')	,*fy(GD8nG,W,,'#G}"{#/#=#=GL  W~r   c                f    V P                  W!W!4       F  pV'       g   K  V^ ,          u # 	  \        # )z4Cells are returned by a generator which can be empty)rG   r   )r   rE   rJ   s   &&&r   	_get_cellReadOnlyWorksheet._get_cell   s0    %%f6?Cs1v @ r   c                "   \        V P                  V P                  .4      '       g%   V'       d   V P                  4        M\	        R 4      h\        V P                  4       V P                   R\        V P                  4       V P                   2# )z9Worksheet is unsized, use calculate_dimension(force=True):)allr6   r7   _calculate_dimension
ValueErrorr   
min_columnr>   )r   forces   &&r   calculate_dimension%ReadOnlyWorksheet.calculate_dimension   sr    DOOT\\233))+ !\]]#DOO45dll^1EVW[WfWfEgDhimiuiuhvwwr   c                    ^ pV P                    F+  pV'       g   K  VR,          p\        WP                  4      pK-  	  XP                  V n        Wn        R# )zh
Loop through all the cells to get the size of a worksheet.
Do this only if it is explicitly requested.
NrM   )rowsmaxrJ   rE   r(   r'   )r   r?   rrQ   s   &   r   rY   &ReadOnlyWorksheet._calculate_dimension   sG     AR5D';;/G	  "r   c                "    R;V n         V n        R# )z
Remove worksheet dimensions if these are incorrect in the worksheet source.
NB. This probably indicates a bug in the library or application that created
the workbook.
N)r(   r'   r/   s   &r   reset_dimensions"ReadOnlyWorksheet.reset_dimensions   s     ,0/(r   c                    V P                   # r	   )r&   r/   s   &r   r>   ReadOnlyWorksheet.min_row       }}r   c                    V P                   # r	   )r(   r/   s   &r   r7   ReadOnlyWorksheet.max_row   ri   r   c                    V P                   # r	   )r%   r/   s   &r   r[   ReadOnlyWorksheet.min_column       r   c                    V P                   # r	   )r'   r/   s   &r   r6   ReadOnlyWorksheet.max_column   rn   r   )r   r'   r(   r%   r&   r   r   r   r   r   r   )F)   NF)__name__
__module____qualname____firstlineno__r%   r&   r'   r(   r   rQ   	iter_rowsvaluesr`   __getitem____iter__r    r   r#   rG   r<   rT   r]   rY   re   propertyr>   r7   r[   r6   __static_attributes____classdictcell__)__classdict__s   @r   r   r      s     KH!!K( >>D##IF>>D''K!!H/Z?
* Z2x#"0            r   r   N)__doc__	worksheetr   openpyxl.cell.read_onlyr   r   openpyxl.utilsr   _readerr   openpyxl.workbook.defined_namer   r   r   rL   r   r   <module>r      s,    ! < , $ :%
k  k r   