B
    P\Z                 @   s8   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   )	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)selfZsource_worksheetZtarget_worksheet r   8lib/python3.7/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kr4td| jj| jjkrLt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 )N)_copy_cells_copy_dimensionsr   r   Zsheet_formatr   Zsheet_propertiesZmerged_cells)r
   r   r   r   copy_worksheet#   s
    zWorksheetCopy.copy_worksheetc             C   sx   xr| j j D ]b\\}}}| jj||d}|j|_|j|_|jrLt|j	|_	|j
r^t|j
|_|jrt|j|_qW d S )N)columnrow)r   Z_cellsitemsr   ZcellZ_valueZ	data_typeZ	has_styler   Z_styleZ	hyperlinkZ
_hyperlinkcomment)r
   r   colZsource_cellZtarget_cellr   r   r   r   ,   s    zWorksheetCopy._copy_cellsc             C   sX   xRdD ]J}t | j|}t | j|}x,| D ] \}}t|||< | j|| _q,W qW d S )N)Zrow_dimensionsZcolumn_dimensions)getattrr   r   r   r   	worksheet)r
   attrsrcr   keyZ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)Z
__future__r   r   r   r   objectr   r   r   r   r   <module>   s   