
    Mwgj                         d Z ddlmZ ddlmZmZmZmZmZm	Z	m
Z
 ddlmZmZ ddlmZmZ ddlmZmZ ddlmZ ddlmZmZmZ dd	lmZ dd
lmZ d Z G d d      Zy)z2Write the workbook global settings to the archive.    )quote_sheetname)ARC_APPARC_CORE
ARC_CUSTOMARC_WORKBOOK
PKG_REL_NSCUSTOMUI_NSARC_ROOT_RELS)tostring
fromstring)RelationshipRelationshipList)DefinedNameDefinedNameList)ExternalReference)
ChildSheetWorkbookPackage
PivotCache)WorkbookProperties)CALENDAR_MAC_1904c                    t        | j                        D cg c]  \  }}|j                  dk(  s| }}}|st        d      | j                  }| j
                  }|r|j                  dk(  r|S ||d D ]  }|| _        |c S  yc c}}w )z~
    Return the index of the active sheet.
    If the sheet set to active is hidden return the next visible sheet or None
    visiblez"At least one sheet must be visibleN)	enumerate_sheetssheet_state
IndexError_active_sheet_indexactive)wbidxsheetvisible_sheetss       P/var/www/horilla/myenv/lib/python3.12/site-packages/openpyxl/workbook/_writer.pyget_active_sheetr$      s    
 -6bjj,Adjc5UEVEVZcEccdNd=>>

 
 CIIE""i/
cd# 	
  es
   BBc                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)WorkbookWriterc                     || _         t               | _        t               | _        |j
                  | j                  _        |j                  | j                  _        y )N)	r   r   relsr   packagesecurityworkbookProtectioncalculationcalcPr)selfr   s     r#   __init__zWorkbookWriter.__init__3   s=    $&	&(*,++' nn    c                     t               }| j                  j                  | j                  j                  |_        | j                  j                  t
        k(  rd|_        || j                  _        y )NT)	r   r   	code_namecodeNameexcel_base_dater   date1904r)   
workbookPr)r.   propss     r#   write_propertieszWorkbookWriter.write_properties;   sQ    "$77(!WW..EN77""&77!EN"'r0   c                    t        | j                  j                  d      D ]  \  }}t        |j                  |dj                  |            }t        |j                  |j                        }| j                  j                  |       |j                  dk(  s>t        | j                  j                        dk(  rt        d      |j                  |_        | j                  j                   j                  |        y )N   zrId{0})namesheetIdidtypeTargetr   z1The only worksheet of a workbook cannot be hidden)r   r   r   r   titleformatr   	_rel_typepathr(   appendr   len
ValueErrorstater)   sheets)r.   r    r!   
sheet_noderels        r#   write_worksheetszWorkbookWriter.write_worksheetsE   s    #DGGOOQ7 		3JC#chooVYFZ[JEOOEJJGCIIS!$$	1tww'1,$%XYY#(#4#4
 LL&&z2		3r0   c                 l   | j                   j                  D ]  }t        | j                   j                        dz   }t	        |j
                  |j                        }| j                  j                  |       t        |j                        }| j                  j                  j                  |        y )Nr:   r>   )r=   )r   _external_linksrF   r(   r   rC   rD   rE   r   r=   r)   externalReferences)r.   linkrIdrK   exts        r#   
write_refszWorkbookWriter.write_refsR   s~    GG++ 	8Ddggll#a'CDNN499ECIIS!#svv.CLL++2237	8r0   c                 
   t        | j                  j                  j                               }t	        | j                  j
                        D ]  \  }}t        |j                        }|j                  r9|j                  j                         }|D ]	  }||_         |j                  |       |j                  r5t        d|d      }| d|j                   |_        |j                  |       |j                  r/t        d|      }|j                  |_        |j                  |       |j                  st        d|      }|j                  |_        |j                  |        t!        |      | j"                  _        y )	N_FilterDatabaseT)r;   localSheetIdhidden!Print_Titles)r;   rV   
Print_Area)definedName)listr   defined_namesvaluesr   
worksheetsr   rA   rV   extendauto_filterr   valuerE   print_titles
print_arear   r)   definedNames)r.   r]   r    r!   quotednamesnr;   s           r#   write_nameszWorkbookWriter.write_names\   sE   TWW2299;<#DGG$6$67 	+JC$U[[1F ""++224 )A%(AN)$$U+  "(9TXY &xq):):(;<
$$T*!!"SI"//
$$T*"3G"--
$$T*/	+2 %4$N!r0   c                    t               }| j                  j                  D ]  }|j                  |vs|j	                  |j                         t        |j                        }| j                  j                  j                  |       t        |j                  j                  |j                  j                        }| j                  j                  |       |j                  |_         y )N)cacheIdTyper@   )setr   _pivotscacheaddr   rk   r)   pivotCachesrE   r   rel_typerD   r(   r=   )r.   pivot_cachespivotcrK   s        r#   write_pivotszWorkbookWriter.write_pivots{   s    uWW__ 	E{{,.  -u}}5((//2"(<(<U[[EUEUV		  %vv	r0   c                     t        | j                        }| j                  j                  r|| j                  j                  d   _        | j                  j                  | j                  _        y )Nr   )r$   r   views	activeTabr)   	bookViews)r.   r   s     r#   write_viewszWorkbookWriter.write_views   sD    !$''*77==)/DGGMM!&!%r0   c                    | j                          | j                          | j                          | j                          | j	                          | j                          t        | j                  j                               S )zWrite the core workbook xml.)	r8   rL   ri   rw   r|   rS   r   r)   to_tree)r.   s    r#   writezWorkbookWriter.write   sb     	,,.//r0   c                 r   t        dd      }| j                  j                  |       t        dd      }| j                  j                  |       | j                  j                  r/t        dd      }d|_        | j                  j                  |       t        | j                  j                               S )	z%Write the workbook relationships xml.stylesz
styles.xmlr>   themeztheme/theme1.xml zvbaProject.binzAhttp://schemas.microsoft.com/office/2006/relationships/vbaProject)r   r(   rE   r   vba_archiverm   r   r~   )r.   r   r   vbas       r#   
write_relszWorkbookWriter.write_rels   s     H\B		 73EF		77R0@ACYCHIIS!		))+,,r0   c                    t               }t        dt              }|j                  |       t        t         dt
              }|j                  |       t        dt              }|j                  |       t        | j                  j                        dk\  r"t        dt              }|j                  |       | j                  j                  rt        | j                  j                  j                  t                    }t        j                  |      }|j!                  t"              D ]  }|j                  |        t%        |j'                               S )zWrite the package relationshipsofficeDocumentr>   z/metadata/core-propertiesrl   zextended-propertiesr:   zcustom-properties)r   r   r   rE   r   r   r   rF   r   custom_doc_propsr   r   r   readr
   	from_treefindr	   r   r~   )r.   r(   rK   xml	root_relss        r#   write_root_relszWorkbookWriter.write_root_rels   s     ! 0FC:,.G HQYZC 5gFCtww''(A-$7
KCKK77*TWW0055mDEC(2237I ~~k2 !C ! ''r0   N)__name__
__module____qualname__r/   r8   rL   rS   ri   rw   r|   r   r   r    r0   r#   r&   r&   1   s5    -(
38O>	/
0-"(r0   r&   N) __doc__openpyxl.utilsr   openpyxl.xml.constantsr   r   r   r   r   r	   r
   openpyxl.xml.functionsr   r   openpyxl.packaging.relationshipr   r   openpyxl.workbook.defined_namer   r   $openpyxl.workbook.external_referencer   openpyxl.packaging.workbookr   r   r   openpyxl.workbook.propertiesr   openpyxl.utils.datetimer   r$   r&   r   r0   r#   <module>r      sL    9 *   8 J C O O ; 5*T( T(r0   