o
    �?ƒZš  ã                   @   sD   d dl mZ d dlmZ d dlmZ d dlmZ G dd„ deƒZdS )é    )Úabsolute_import)Úcopy)ÚComment)Ú	Worksheetc                   @   s8   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ ZdS )ÚWorksheetCopyzz
    Copy the values, styles, dimensions and merged cells from one worksheet
    to another within the same workbook.
    c                 C   s   || _ || _|  ¡  d S ©N)ÚsourceÚtargetÚ_verify_resources)ÚselfÚsource_worksheetÚtarget_worksheet© r   úK/var/www/html/env/lib/python3.10/site-packages/openpyxl/worksheet/copier.pyÚ__init__   s   zWorksheetCopy.__init__c                 C   sP   t | jtƒst | jtƒstdƒ‚| j| ju rtdƒ‚| jj| jjkr&tdƒ‚d S )NzCan only copy worksheetsz!Cannot copy a worksheet to itselfz7Cannot copy between worksheets from different workbooks)Ú
isinstancer   r   r	   Ú	TypeErrorÚ
ValueErrorÚparent©r   r   r   r   r
      s   
ÿÿzWorksheetCopy._verify_resourcesc                 C   sD   |   ¡  |  ¡  t| jjƒ| j_t| jjƒ| j_t| jjƒ| j_d S r   )Ú_copy_cellsÚ_copy_dimensionsr   r   Úsheet_formatr	   Úsheet_propertiesÚmerged_cellsr   r   r   r   Úcopy_worksheet%   s
   zWorksheetCopy.copy_worksheetc                 C   st   | j j ¡ D ]1\\}}}| jj||d�}|j|_|j|_|jr%t|j	ƒ|_	|j
r.t|j
ƒ|_|jr7t|jƒ|_qd S )N)ÚcolumnÚrow)r   Ú_cellsÚitemsr	   ÚcellÚ_valueÚ	data_typeÚ	has_styler   Ú_styleÚ	hyperlinkÚ
_hyperlinkÚcomment)r   r   ÚcolÚsource_cellÚtarget_cellr   r   r   r   .   s   €ózWorksheetCopy._copy_cellsc                 C   sP   dD ]#}t | j|ƒ}t | j|ƒ}| ¡ D ]\}}t|ƒ||< | j|| _qqd S )N)Úrow_dimensionsÚcolumn_dimensions)Úgetattrr   r	   r   r   Ú	worksheet)r   ÚattrÚsrcr	   ÚkeyÚdimr   r   r   r   ?   s   þýzWorksheetCopy._copy_dimensionsN)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r
   r   r   r   r   r   r   r   r      s    	r   N)	Ú
__future__r   r   Úopenpyxl.commentsr   Úopenpyxl.worksheetr   Úobjectr   r   r   r   r   Ú<module>   s
    