§
    £”jE0  ã                   ó¸  — d Z ddlmZmZ ddlmZ ddlZddlZddl	m
Z
 	 ddlmZ n# e$ r dZY nw xY wdd	lmZ dd
lmZmZmZmZmZmZmZmZmZmZmZ ddlmZ ddlmZ ddl m!Z!m"Z" ddl#m$Z$ ddl%m&Z& ddl'm(Z( ddl)m*Z* ddl+m,Z,m-Z- ddl.m/Z/m0Z0m1Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7 ddl8m9Z9 ddl:m;Z; ddl<m=Z= ddl>m?Z? dZ@d„ ZAd„ ZB G d„ d ¦  «        ZCdedd!dfd"„ZDdS )#zRead an xlsx file into Pythoné    )ÚZipFileÚZIP_DEFLATED)ÚBytesION)ÚTableDefinitioné   )ÚKEEP_VBAF)ÚInvalidFileException)ÚARC_COREÚ
ARC_CUSTOMÚARC_CONTENT_TYPESÚARC_WORKBOOKÚ	ARC_THEMEÚCOMMENTS_NSÚSHARED_STRINGSÚXLTMÚXLTXÚXLSMÚXLSX)Ú
MergedCell)ÚCommentSheeté   )Úread_string_tableÚread_rich_text)ÚWorkbookParser)Úapply_stylesheet)ÚDocumentProperties)ÚCustomPropertyList)ÚManifestÚOverride)ÚRelationshipListÚget_dependentsÚget_rels_path)ÚReadOnlyWorksheet)ÚWorksheetReader)Ú
Chartsheet)ÚTable)ÚSpreadsheetDrawing)Ú
fromstring)Úfind_images)z.xlsxz.xlsmz.xltxz.xltmc                 óL  — t          | d¦  «        }|s�t          j                             | ¦  «        d                              ¦   «         }|t
          vrA|dk    rd}n)|dk    rd}n d|›dd	                     t
          ¦  «        ›�}t          |¦  «        ‚t          | d
¦  «        }|S )a¢  
    Does a first check whether filename is a string or a file-like
    object. If it is a string representing a filename, a check is done
    for supported formats by checking the given file-extension. If the
    file-extension is not in SUPPORTED_FORMATS an InvalidFileException
    will raised. Otherwise the filename (resp. file-like object) will
    forwarded to zipfile.ZipFile returning a ZipFile-Instance.
    Úreadéÿÿÿÿz.xlszŠopenpyxl does not support the old .xls file format, please use xlrd to read this file, or convert it to the more recent .xlsx file format.z.xlsbz|openpyxl does not support binary format .xlsb, please convert this file to .xlsx format if you want to open it with openpyxlzopenpyxl does not support zT file format, please check you can open it with Excel first. Supported formats are: ú,Úr)	ÚhasattrÚosÚpathÚsplitextÚlowerÚSUPPORTED_FORMATSÚjoinr	   r   )ÚfilenameÚis_file_likeÚfile_formatÚmsgÚarchives        úd/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/openpyxl/reader/excel.pyÚ_validate_archiver<   B   sÅ   € õ ˜8 VÑ,Ô,€LØð ,Ý”g×&Ò& xÑ0Ô0°Ô4×:Ò:Ñ<Ô<ˆØÕ/Ð/Ð/Ø˜fÒ$Ð$ð<��ð  Ò'Ð'ð2��ð (ð 8C°{°{Ø7:·x²xÕ@QÑ7RÔ7RÐ7Rð	T�õ
 ' sÑ+Ô+Ð+å�h Ñ$Ô$€GØ€Nó    c                 ó2  — t           t          t          t          g}|D ]}|                      |¦  «        }|r|c S Œd„ | j        D ¦   «         }|t          |¦  «        z  }|r*t          dt          z   | 	                    ¦   «         ¦  «        S t          d¦  «        ‚)Nc                 ó   — h | ]	}|j         ’Œ
S © )ÚContentType)Ú.0Úps     r;   ú	<setcomp>z&_find_workbook_part.<locals>.<setcomp>k   s   € Ð7Ð7Ð7 !�”Ð7Ð7Ð7r=   ú/z$File contains no valid workbook part)r   r   r   r   ÚfindÚDefaultÚsetr   r   ÚpopÚIOError)ÚpackageÚworkbook_typesÚctÚpartÚdefaultsÚworkbook_types         r;   Ú_find_workbook_partrQ   c   s¨   € Ý�D¥$­Ð-€NØð ð ˆØ�|Š|˜BÑÔˆØð 	ØˆKˆKˆKð	ð 8Ð7 w¤Ð7Ñ7Ô7€HØ�s >Ñ2Ô2Ñ2€MØð AÝ˜�lÑ*¨M×,=Ò,=Ñ,?Ô,?Ñ@Ô@Ð@å
Ð8Ñ
9Ô
9Ð9r=   c                   óZ   — e Zd ZdZdedddfd„Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zd„ ZdS )ÚExcelReaderzQ
    Read an Excel package and dispatch the contents to the relevant modules
    FTc                 ó¾   — t          |¦  «        | _        | j                             ¦   «         | _        || _        || _        || _        || _        || _        g | _	        d S ©N)
r<   r:   ÚnamelistÚvalid_filesÚ	read_onlyÚkeep_vbaÚ	data_onlyÚ
keep_linksÚ	rich_textÚshared_strings)ÚselfÚfnrX   rY   rZ   r[   r\   s          r;   Ú__init__zExcelReader.__init__y   sX   € å(¨Ñ,Ô,ˆŒØœ<×0Ò0Ñ2Ô2ˆÔØ"ˆŒØ ˆŒØ"ˆŒØ$ˆŒØ"ˆŒØ ˆÔÐÐr=   c                 ó”   — | j                              t          ¦  «        }t          |¦  «        }t	          j        |¦  «        | _        d S rU   )r:   r+   r   r(   r   Ú	from_treerK   )r^   ÚsrcÚroots      r;   Úread_manifestzExcelReader.read_manifest…   s9   € ØŒl×ÒÕ 1Ñ2Ô2ˆÝ˜#‰ŒˆÝÔ)¨$Ñ/Ô/ˆŒˆˆr=   c                 ó  — | j                              t          ¦  «        }t          }| j        rt
          }|�T|j        dd …         }| j                             |¦  «        5 } ||¦  «        | _	        d d d ¦  «         d S # 1 swxY w Y   d S d S )Nr   )
rK   rF   r   r   r\   r   ÚPartNamer:   Úopenr]   )r^   rM   ÚreaderÚstrings_pathrc   s        r;   Úread_stringszExcelReader.read_strings‹   sÍ   € ØŒ\×Ò�~Ñ.Ô.ˆÝ"ˆØŒ>ð 	$Ý#ˆFØˆ>Øœ; q r rœ?ˆLØ”×"Ò" <Ñ1Ô1ð 2°SØ&, f¨S¡k¤k�Ô#ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2ð 2ð 2ð ˆ>s   Á A>Á>BÂBc                 óP  — t          | j        ¦  «        }t          | j        |j        dd …         | j        ¬¦  «        | _        | j                             ¦   «          | j        j        }g |_	        | j
        |_        | j        |_        |j        t          t           fv |_        | j        rdt'          t)          ¦   «         dt*          ¦  «        |_        | j        D ]5}|j                             || j                             |¦  «        ¦  «         Œ6| j        r| j        |_        || _        d S )Nr   )r[   Úa)rQ   rK   r   r:   rg   r[   ÚparserÚparseÚwbÚ_sheetsrZ   Ú
_data_onlyrX   Ú
_read_onlyrA   r   r   ÚtemplaterY   r   r   r   Úvba_archiverW   Úwritestrr+   Ú_archive)r^   Úwb_partrp   Únames       r;   Úread_workbookzExcelReader.read_workbook–   s  € Ý% d¤lÑ3Ô3ˆÝ$ T¤\°7Ô3CÀAÀBÀBÔ3GÐTXÔTcÐdÑdÔdˆŒØŒ×ÒÑÔÐØŒ[Œ^ˆØˆŒ
ØœˆŒØœˆŒØÔ)­dµD¨\Ð9ˆŒð Œ=ð 	GÝ$¥W¡Y¤Y°µ\ÑBÔBˆBŒNØÔ(ð Gð G�Ø”×'Ò'¨¨d¬l×.?Ò.?ÀÑ.EÔ.EÑFÔFÐFÐFàŒ>ð 	'Øœ,ˆBŒKàˆŒˆˆr=   c                 óº   — t           | j        v rLt          | j                             t           ¦  «        ¦  «        }t          j        |¦  «        | j        _        d S d S rU   )	r
   rW   r(   r:   r+   r   rb   rp   Ú
properties©r^   rc   s     r;   Úread_propertieszExcelReader.read_properties­   sP   € Ý�tÔ'Ð'Ð'Ý˜Tœ\×.Ò.­xÑ8Ô8Ñ9Ô9ˆCÝ!3Ô!=¸cÑ!BÔ!BˆDŒGÔÐÐð (Ð'r=   c                 óº   — t           | j        v rLt          | j                             t           ¦  «        ¦  «        }t          j        |¦  «        | j        _        d S d S rU   )	r   rW   r(   r:   r+   r   rb   rp   Úcustom_doc_propsr}   s     r;   Úread_customzExcelReader.read_custom³   sP   € Ý˜Ô)Ð)Ð)Ý˜Tœ\×.Ò.­zÑ:Ô:Ñ;Ô;ˆCÝ'9Ô'CÀCÑ'HÔ'HˆDŒGÔ$Ð$Ð$ð *Ð)r=   c                 óx   — t           | j        v r+| j                             t           ¦  «        | j        _        d S d S rU   )r   rW   r:   r+   rp   Úloaded_theme)r^   s    r;   Ú
read_themezExcelReader.read_theme¹   s8   € Ý˜Ô(Ð(Ð(Ø#'¤<×#4Ò#4µYÑ#?Ô#?ˆDŒGÔ Ð Ð ð )Ð(r=   c                 ó`  — |j         }t          |¦  «        }g }|| j        v rt          | j        |¦  «        }| j                             |d¦  «        5 }|                     ¦   «         }d d d ¦  «         n# 1 swxY w Y   t          |¦  «        }t          j	        |¦  «        }	| j
        |	_        |j        |	_        | j
                             |	¦  «         |                     t           j        ¦  «        }
|
D ]9}t%          | j        |j         ¦  «        \  }}|D ]}|	                     |¦  «         ŒŒ:d S )Nr.   )Útargetr"   rW   r!   r:   rh   r+   r(   r%   rb   rp   Ú_parentry   ÚtitleÚ
_add_sheetrF   r'   Ú	_rel_typer)   Ú	add_chart)r^   ÚsheetÚrelÚ
sheet_pathÚ	rels_pathÚrelsrc   ÚxmlÚnodeÚcsÚdrawingsÚchartsÚimagesÚcs                 r;   Úread_chartsheetzExcelReader.read_chartsheet¾   s^  € Ø”Zˆ
Ý! *Ñ-Ô-ˆ	ØˆØ˜Ô(Ð(Ð(Ý! $¤,°	Ñ:Ô:ˆDàŒ\×Ò˜z¨3Ñ/Ô/ð 	°3Ø—(’(‘*”*ˆCð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	å˜#‰ŒˆÝÔ! $Ñ'Ô'ˆØ”WˆŒ
Ø”:ˆŒØŒ×Ò˜2ÑÔÐà—9’9Õ/Ô9Ñ:Ô:ˆØð 	 ð 	 ˆCÝ(¨¬°s´zÑBÔB‰NˆF�FØð  ð  �Ø—’˜Q‘”��ð ð	 ð 	 s   ÁA3Á3A7Á:A7c           
      ó2  — d}| j                              ¦   «         D �]ù\  }}|j        | j        vrŒd|j        v r|                      ||¦  «         Œ5t          |j        ¦  «        }t          ¦   «         }|| j        v rt          | j	        |¦  «        }| j
        rRt          | j        |j        |j        | j        ¦  «        }|j        |_        | j        j                             |¦  «         ŒÎ| j	                             |j        ¦  «        }| j                             |j        ¦  «        }||_        t-          ||| j        | j        | j        ¦  «        }|                     ¦   «          |                     ¦   «          |                     t8          ¦  «        D ]¾}	| j	                             |	j        ¦  «        }
t=          j        tA          |
¦  «        ¦  «        }|j!        D ]t\  }}	 |||         _"        Œ# tF          $ rT ||         }tI          |tJ          ¦  «        r4tM          j'        | (                    |j)        |j*        ¦  «        ¦  «         Y ŒoY Œqw xY wŒ¿| j        j+        r,|j,        r%| -                    |j,        ¦  «        j        |_,        nd |_,        |j.        D ]T}| j	                             |¦  «        }
tA          |
¦  «        }t_          j        |¦  «        }| 0                    |¦  «         ŒU|                     tb          j2        ¦  «        }|D ]_}tg          | j	        |j        ¦  «        \  }}|D ]}| 4                    ||j5        ¦  «         Œ|D ]}| 6                    ||j5        ¦  «         ŒŒ`|                     tn          j8        ¦  «        }| j         j9        }|D ]m}	|	j:        }| j	                             |¦  «        }
tA          |
¦  «        }to          j        |¦  «        }||j;                 |_<        | =                    |¦  «         Œn|j        |_        �Œûd S )Nz~Cell '{0}':{1} is part of a merged range but has a comment which will be removed because merged cells cannot contain any data.Ú
chartsheet)>rn   Úfind_sheetsr†   rW   ÚTyper˜   r"   r    r!   r:   rX   r#   rp   ry   r]   ÚstateÚsheet_staterq   Úappendrh   Úcreate_sheetÚ_relsr$   rZ   r\   Úbind_allÚcloserF   r   r+   r   rb   r(   ÚcommentsÚcommentÚAttributeErrorÚ
isinstancer   ÚwarningsÚwarnÚformatrˆ   Ú
coordinateru   Úlegacy_drawingÚgetÚtablesr&   Ú	add_tabler'   rŠ   r)   r‹   ÚanchorÚ	add_imager   Úrel_typeÚpivot_cachesÚTargetÚcacheIdÚcacheÚ	add_pivot)r^   Úcomment_warningrŒ   r�   r�   r�   ÚwsÚfhÚ	ws_parserr.   rc   Úcomment_sheetÚrefr¥   r—   Útr‘   Útabler”   r•   r–   ÚimÚ	pivot_relr³   Ú
pivot_pathÚtreeÚpivots                              r;   Úread_worksheetszExcelReader.read_worksheetsÔ   s   € ð _ˆØœ+×1Ò1Ñ3Ô3ð E	)ñ E	)‰JˆE�3ØŒz Ô!1Ð1Ð1Øà˜sœxÐ'Ð'Ø×$Ò$ U¨CÑ0Ô0Ð0Øå% c¤jÑ1Ô1ˆIÝ#Ñ%Ô%ˆDØ˜DÔ,Ð,Ð,Ý% d¤l°IÑ>Ô>�àŒ~ð Ý& t¤w°´
¸C¼JÈÔH[Ñ\Ô\�Ø!&¤�”Ø””×&Ò& rÑ*Ô*Ð*Øà”\×&Ò& s¤zÑ2Ô2�Ø”W×)Ò)¨%¬*Ñ5Ô5�Ø�”Ý+¨B°°DÔ4GÈÌÐY]ÔYgÑhÔh�	Ø×"Ò"Ñ$Ô$Ð$Ø—’‘
”
�
ð —Y’Y�{Ñ+Ô+ð 
%ð 
%�Ø”l×'Ò'¨¬Ñ1Ô1�Ý ,Ô 6µzÀ#±´Ñ GÔ G�Ø$1Ô$:ð %ð %‘L�C˜ð%Ø*1˜˜3œœ˜øÝ)ð %ð %ð %Ø˜sœG˜Ý% a­Ñ4Ô4ð %Ý$œM¨/×*@Ò*@ÀÄÈ1Ì<Ñ*XÔ*XÑYÔYÐYØ$˜Hð%ð %ð%øøøð%ð ŒwÔ"ð ) rÔ'8ð )Ø$(§H¢H¨RÔ->Ñ$?Ô$?Ô$F�Ô!Ð!à$(�Ô!àÔ%ð $ð $�Ø”l×'Ò'¨Ñ*Ô*�Ý  ‘o”o�Ýœ¨Ñ,Ô,�Ø—’˜UÑ#Ô#Ð#Ð#à—y’yÕ!3Ô!=Ñ>Ô>ˆHØð 0ð 0�Ý!,¨T¬\¸3¼:Ñ!FÔ!F‘�˜Øð .ð .�AØ—L’L  A¤HÑ-Ô-Ð-Ð-Ø ð 0ð 0�BØ—L’L  R¤YÑ/Ô/Ð/Ð/ð0ð Ÿ	š	¥/Ô":Ñ;Ô;ˆIØœ;Ô3ˆLØð $ð $�ØœX�
Ø”l×'Ò'¨
Ñ3Ô3�Ý! #‘”�Ý'Ô1°$Ñ7Ô7�Ø*¨5¬=Ô9�”Ø—’˜UÑ#Ô#Ð#Ð#à"œ[ˆBŒN‰NðKE	)ð E	)s   Ç"G0Ç0AI	ÉI	c                 óT  — d}	 |                       ¦   «          d}|                      ¦   «          d}|                      ¦   «          d}|                      ¦   «          d}|                      ¦   «          d}|                      ¦   «          d}t          | j        | j        ¦  «         d}|  	                    ¦   «          d	}| j
                             ¦   «          | j        s| j                             ¦   «          d S d S # t          $ r&}t          d
|› d| j        j        › d�¦  «        |‚d }~ww xY w)Nzread manifestzread stringszread workbookzread propertieszread custom propertiesz
read themezread stylesheetzread worksheetszassign namesz#Unable to read workbook: could not z from z~.
This is most probably because the workbook source files contain some invalid XML.
Please see the exception for more details.)re   rk   rz   r~   r�   r„   r   r:   rp   rÅ   rn   Úassign_namesrX   r£   Ú
ValueErrorr6   )r^   ÚactionÚes      r;   r+   zExcelReader.read  sc  € Ø ˆð	Ø×ÒÑ Ô Ð Ø#ˆFØ×ÒÑÔÐØ$ˆFØ×ÒÑ Ô Ð Ø&ˆFØ× Ò Ñ"Ô"Ð"Ø-ˆFØ×ÒÑÔÐØ!ˆFØ�OŠOÑÔÐØ&ˆFÝ˜Tœ\¨4¬7Ñ3Ô3Ð3Ø&ˆFØ× Ò Ñ"Ô"Ð"Ø#ˆFØŒK×$Ò$Ñ&Ô&Ð&Ø”>ð %Ø”×"Ò"Ñ$Ô$Ð$Ð$Ð$ð%ð %øåð 	ð 	ð 	Ýð=°fð =ð =ÀDÄLÔDYð =ð =ð =ñô ð ð	øøøøð	øøøs   „C/C7 Ã7
D'Ä!D"Ä"D'N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r`   re   rk   rz   r~   r�   r„   r˜   rÅ   r+   r@   r=   r;   rS   rS   s   sÔ   € € € € € ðð ð &+°XØ ¨T¸Uð	!ð 	!ð 	!ð 	!ð0ð 0ð 0ð2ð 2ð 2ðð ð ð.Cð Cð CðIð Ið Ið@ð @ð @ð
 ð  ð  ð,G)ð G)ð G)ðTð ð ð ð r=   rS   Tc                 ó`   — t          | |||||¦  «        }|                     ¦   «          |j        S )aE  Open the given filename and return the workbook

    :param filename: the path to open or a file-like object
    :type filename: string or a file-like object open in binary mode c.f., :class:`zipfile.ZipFile`

    :param read_only: optimised for reading, content cannot be edited
    :type read_only: bool

    :param keep_vba: preserve vba content (this does NOT mean you can use it)
    :type keep_vba: bool

    :param data_only: controls whether cells with formulae have either the formula (default) or the value stored the last time Excel read the sheet
    :type data_only: bool

    :param keep_links: whether links to external workbooks should be preserved. The default is True
    :type keep_links: bool

    :param rich_text: if set to True openpyxl will preserve any rich text formatting in cells. The default is False
    :type rich_text: bool

    :rtype: :class:`openpyxl.workbook.Workbook`

    .. note::

        When using lazy load, all worksheets will be :class:`openpyxl.worksheet.iter_worksheet.IterableWorksheet`
        and the returned workbook will be read-only.

    )rS   r+   rp   )r6   rX   rY   rZ   r[   r\   ri   s          r;   Úload_workbookrÐ   <  s5   € õ< ˜ 9¨hØ" J°	ñ;ô ;€Fà
‡K‚K�M„M€MØŒ9Ðr=   )ErÎ   Úzipfiler   r   Úior   Úos.pathr0   r¨   Úopenpyxl.pivot.tabler   Útestsr   ÚImportErrorÚopenpyxl.utils.exceptionsr	   Úopenpyxl.xml.constantsr
   r   r   r   r   r   r   r   r   r   r   Úopenpyxl.cellr   Úopenpyxl.comments.comment_sheetr   Ústringsr   r   Úworkbookr   Úopenpyxl.styles.stylesheetr   Úopenpyxl.packaging.corer   Úopenpyxl.packaging.customr   Úopenpyxl.packaging.manifestr   r   Úopenpyxl.packaging.relationshipr    r!   r"   Úopenpyxl.worksheet._read_onlyr#   Úopenpyxl.worksheet._readerr$   Úopenpyxl.chartsheetr%   Úopenpyxl.worksheet.tabler&   Ú$openpyxl.drawing.spreadsheet_drawingr'   Úopenpyxl.xml.functionsr(   r”   r)   r4   r<   rQ   rS   rÐ   r@   r=   r;   ú<module>rè      s  ðð $Ð #ð *Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ø Ð Ð Ð Ð Ð Ø €€€Ø €€€à 0Ð 0Ð 0Ð 0Ð 0Ð 0ðØ Ð Ð Ð Ð Ð Ð øØð ð ð Ø€H€H€Hðøøøð ;Ð :Ð :Ð :Ð :Ð :ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð %Ð $Ð $Ð $Ð $Ð $Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8à 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø $Ð $Ð $Ð $Ð $Ð $Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7à 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :ðð ð ð ð ð ð ð ð ð ð <Ð ;Ð ;Ð ;Ð ;Ð ;Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø *Ð *Ð *Ð *Ð *Ð *Ø *Ð *Ð *Ð *Ð *Ð *Ø CÐ CÐ CÐ CÐ CÐ Cà -Ð -Ð -Ð -Ð -Ð -à !Ð !Ð !Ð !Ð !Ð !ð 9Ð ðð ð ðB:ð :ð :ð Fð Fð Fð Fð Fñ Fô Fð FðR ',°hØ!¨d¸eð!ð !ð !ð !ð !ð !s    ' §1°1