o
    ¨ÊhP\  ã                   @   s@   d dl mZ d dl mZ d dlmZmZmZ G dd„ deƒZdS )é   )ÚBIFFRecords)ÚStyle)Úunicode_typeÚ	int_typesÚ
basestringc                   @   s²  e Zd ZdZd¼dd„Zdd„ Zdd	„ Zd
d„ ZeeeƒZ	dd„ Z
dd„ Zeee
ƒZdd„ Zdd„ ZeeeƒZdd„ Zdd„ ZeeeƒZdd„ Zdd„ ZeeeƒZdd„ Zdd„ ZeeeƒZd d!„ Zd"d#„ ZeeeƒZd$d%„ Zd&d'„ ZeeeƒZd(d)„ Zd*d+„ Z ee eƒZ!d,d-„ Z"d.d/„ Z#ee#e"ƒZ$d0d1„ Z%d2d3„ Z&ee&e%ƒZ'd4d5„ Z(d6d7„ Z)ee)e(ƒZ*d8d9„ Z+d:d;„ Z,ee,e+ƒZ-d<d=„ Z.d>d?„ Z/ee/e.ƒZ0d@dA„ Z1dBdC„ Z2ee2e1ƒZ3dDdE„ Z4dFdG„ Z5ee5e4ƒZ6dHdI„ Z7dJdK„ Z8ee8e7ƒZ9dLdM„ Z:dNdO„ Z;ee;e:ƒZ<dPdQ„ Z=dRdS„ Z>ee>e=ƒZ?dTdU„ Z@ee@ƒZAdVdW„ ZBdXdY„ ZCdZd[„ ZDd\d]„ ZEd^d_„ ZFd`da„ ZGdbdc„ ZHddde„ ZId½dgdh„ZJdidj„ ZKdkdl„ ZLdmdn„ ZMdodp„ ZNdqdr„ ZOdsdt„ ZPdudv„ ZQdwdx„ ZRdydz„ ZSd{d|„ ZTd}d~„ ZUdd€„ ZVd�d‚„ ZWdƒd„„ ZXd…d†„ ZYd‡dˆ„ ZZd‰dŠ„ Z[d‹dŒ„ Z\d�dŽ„ Z]d�d�„ Z^d‘d’„ Z_d“d”„ Z`d•d–„ Zad—d˜„ Zbd™dš„ Zcd›dœ„ Zdd�dž„ ZedŸd „ Zfd¡d¢„ Zgd£d¤„ Zhd¥d¦„ Zid§d¨„ Zjd©dª„ Zkd«d¬„ Zld­d®„ Zmd¯d°„ Znd±d²„ Zod³d´„ Zpdµd¶„ Zqd·d¸„ Zrd¹dº„ Zsd»S )¾ÚWorkbookz¶
    This is a class representing a workbook and all its contents. When creating
    Excel files with xlwt, you will normally start by instantiating an
    object of this class.
    Úasciié    c                 C   sÞ   || _ d| _d | _d| _d| _d| _d| _d| _d| _d| _	d| _
d | _d| _d| _d| _d| _d| _d| _d| _d| _d| _t |¡| _d| _d| _t | j ¡| _g | _i | _i | _i | _ i | _!d | _"d | _#d | _$d | _%d S )	NÚNoner	   ià  éZ   iÏ?  iN*  r   iX  )&ÚencodingÚ_Workbook__ownerÚ_Workbook__country_codeÚ_Workbook__wnd_protectÚ_Workbook__obj_protectÚ_Workbook__protectÚ_Workbook__backup_on_saveÚ_Workbook__hpos_twipsÚ_Workbook__vpos_twipsÚ_Workbook__width_twipsÚ_Workbook__height_twipsÚ_Workbook__custom_palette_b8Ú_Workbook__active_sheetÚ_Workbook__first_tab_indexÚ_Workbook__selected_tabsÚ_Workbook__tab_width_twipsÚ_Workbook__wnd_hiddenÚ_Workbook__wnd_miniÚ_Workbook__hscroll_visibleÚ_Workbook__vscroll_visibleÚ_Workbook__tabs_visibler   ÚStyleCollectionÚ_Workbook__stylesÚ_Workbook__dates_1904Ú_Workbook__use_cell_valuesr   ÚSharedStringTableÚ_Workbook__sstÚ_Workbook__worksheetsÚ"_Workbook__worksheet_idx_from_nameÚ_Workbook__sheet_refsÚ_supbook_xrefÚ_xcall_xrefÚ_ownbook_supbookxÚ_ownbook_supbook_refÚ_xcall_supbookxÚ_xcall_supbook_ref)Úselfr   Ústyle_compression© r2   ú?/var/www/html/env/lib/python3.10/site-packages/xlwt/Workbook.pyÚ__init__7   sD   
zWorkbook.__init__c                 C   s   | j jd d … S ©N)r"   Ústats©r0   r2   r2   r3   Úget_style_statsh   ó   zWorkbook.get_style_statsc                 C   ó
   || _ d S r5   ©r   ©r0   Úvaluer2   r2   r3   Ú	set_ownerk   ó   
zWorkbook.set_ownerc                 C   ó   | j S r5   r;   r7   r2   r2   r3   Ú	get_ownern   ó   zWorkbook.get_ownerc                 C   r:   r5   ©r   r<   r2   r2   r3   Úset_country_codeu   r?   zWorkbook.set_country_codec                 C   r@   r5   rC   r7   r2   r2   r3   Úget_country_codex   rB   zWorkbook.get_country_codec                 C   ó   t |ƒ| _d S r5   )Úintr   r<   r2   r2   r3   Úset_wnd_protect   ó   zWorkbook.set_wnd_protectc                 C   ó
   t | jƒS r5   )Úboolr   r7   r2   r2   r3   Úget_wnd_protect‚   r?   zWorkbook.get_wnd_protectc                 C   rF   r5   )rG   r   r<   r2   r2   r3   Úset_obj_protect‰   rI   zWorkbook.set_obj_protectc                 C   rJ   r5   )rK   r   r7   r2   r2   r3   Úget_obj_protectŒ   r?   zWorkbook.get_obj_protectc                 C   rF   r5   )rG   r   r<   r2   r2   r3   Úset_protect“   rI   zWorkbook.set_protectc                 C   rJ   r5   )rK   r   r7   r2   r2   r3   Úget_protect–   r?   zWorkbook.get_protectc                 C   rF   r5   )rG   r   r<   r2   r2   r3   Úset_backup_on_save�   rI   zWorkbook.set_backup_on_savec                 C   rJ   r5   )rK   r   r7   r2   r2   r3   Úget_backup_on_save    r?   zWorkbook.get_backup_on_savec                 C   ó   |d@ | _ d S ©Néÿÿ  ©r   r<   r2   r2   r3   Úset_hpos§   rI   zWorkbook.set_hposc                 C   r@   r5   rV   r7   r2   r2   r3   Úget_hposª   rB   zWorkbook.get_hposc                 C   rS   rT   ©r   r<   r2   r2   r3   Úset_vpos±   rI   zWorkbook.set_vposc                 C   r@   r5   rY   r7   r2   r2   r3   Úget_vpos´   rB   zWorkbook.get_vposc                 C   rS   rT   ©r   r<   r2   r2   r3   Ú	set_width»   rI   zWorkbook.set_widthc                 C   r@   r5   r\   r7   r2   r2   r3   Ú	get_width¾   rB   zWorkbook.get_widthc                 C   rS   rT   ©r   r<   r2   r2   r3   Ú
set_heightÅ   rI   zWorkbook.set_heightc                 C   r@   r5   r_   r7   r2   r2   r3   Ú
get_heightÈ   rB   zWorkbook.get_heightc                 C   s   |d@ | _ | j | _d S rT   )r   r   r<   r2   r2   r3   Úset_active_sheetÏ   s   
zWorkbook.set_active_sheetc                 C   r@   r5   )r   r7   r2   r2   r3   Úget_active_sheetÓ   rB   zWorkbook.get_active_sheetc                 C   rS   rT   ©r   r<   r2   r2   r3   Úset_tab_widthÚ   rI   zWorkbook.set_tab_widthc                 C   r@   r5   rd   r7   r2   r2   r3   Úget_tab_widthÝ   rB   zWorkbook.get_tab_widthc                 C   s   t | ƒ| _d S r5   )rG   r   r<   r2   r2   r3   Úset_wnd_visibleä   r9   zWorkbook.set_wnd_visiblec                 C   s   t | jƒ S r5   )rK   r   r7   r2   r2   r3   Úget_wnd_visibleç   ó   zWorkbook.get_wnd_visiblec                 C   rF   r5   )rG   r   r<   r2   r2   r3   Úset_wnd_miniî   rI   zWorkbook.set_wnd_minic                 C   rJ   r5   )rK   r   r7   r2   r2   r3   Úget_wnd_miniñ   r?   zWorkbook.get_wnd_minic                 C   rF   r5   )rG   r   r<   r2   r2   r3   Úset_hscroll_visibleø   rI   zWorkbook.set_hscroll_visiblec                 C   rJ   r5   )rK   r   r7   r2   r2   r3   Úget_hscroll_visibleû   r?   zWorkbook.get_hscroll_visiblec                 C   rF   r5   )rG   r   r<   r2   r2   r3   Úset_vscroll_visible  rI   zWorkbook.set_vscroll_visiblec                 C   rJ   r5   )rK   r   r7   r2   r2   r3   Úget_vscroll_visible  r?   zWorkbook.get_vscroll_visiblec                 C   rF   r5   )rG   r    r<   r2   r2   r3   Úset_tabs_visible  rI   zWorkbook.set_tabs_visiblec                 C   rJ   r5   )rK   r    r7   r2   r2   r3   Úget_tabs_visible  r?   zWorkbook.get_tabs_visiblec                 C   rF   r5   )rG   r#   r<   r2   r2   r3   Úset_dates_1904  rI   zWorkbook.set_dates_1904c                 C   rJ   r5   )rK   r#   r7   r2   r2   r3   Úget_dates_1904  r?   zWorkbook.get_dates_1904c                 C   rF   r5   )rG   r$   r<   r2   r2   r3   Úset_use_cell_values   rI   zWorkbook.set_use_cell_valuesc                 C   rJ   r5   )rK   r$   r7   r2   r2   r3   Úget_use_cell_values#  r?   zWorkbook.get_use_cell_valuesc                 C   s   | j jS r5   )r"   Údefault_styler7   r2   r2   r3   Úget_default_style*  s   zWorkbook.get_default_stylec                 C   s”   d|  kr
dksn t d| ƒ‚t|||ƒdk s!t|||ƒdkr*t d|||f ƒ‚| jd u r5ttjƒ| _|d }|d> |d> B |d> B | j|< d S )	Né   é?   z5set_colour_RGB: colour_index (%d) not in range(8, 64)r	   éÿ   zAset_colour_RGB: colour values (%d,%d,%d) must be in range(0, 256)é   é   )Ú	ExceptionÚminÚmaxr   Úlistr   Úexcel_default_palette_b8)r0   Úcolour_indexÚredÚgreenÚblueÚpalette_indexr2   r2   r3   Úset_colour_RGB1  s   ÿ ÿ
"zWorkbook.set_colour_RGBc                 C   ó   | j  |¡S r5   )r"   Úadd)r0   Ústyler2   r2   r3   Ú	add_styleC  ri   zWorkbook.add_stylec                 C   rˆ   r5   )r"   Úadd_font)r0   Úfontr2   r2   r3   rŒ   F  ri   zWorkbook.add_fontc                 C   rˆ   r5   )r&   Úadd_str©r0   Úsr2   r2   r3   rŽ   I  ri   zWorkbook.add_strc                 C   s   | j  |¡ d S r5   )r&   Údel_str)r0   Ússt_idxr2   r2   r3   r‘   L  r9   zWorkbook.del_strc                 C   rˆ   r5   )r&   Ú	str_indexr�   r2   r2   r3   r“   O  ri   zWorkbook.str_indexc                 C   rˆ   r5   )r&   Úadd_rt©r0   Úrtr2   r2   r3   r”   R  ri   zWorkbook.add_rtc                 C   rˆ   r5   )r&   Úrt_indexr•   r2   r2   r3   r—   U  ri   zWorkbook.rt_indexFc                 C   s�   ddl m} ddlm} t|tƒs| | j¡}| |¡s"td| ƒ‚| 	¡ }|| j
v r1td| ƒ‚t| jƒ| j
|< | j ||| |ƒ¡ | jd S )aÐ  
        This method is used to create Worksheets in a Workbook.

        :param sheetname:

          The name to use for this sheet, as it will appear in the
          tabs at the bottom of the Excel application.

        :param cell_overwrite_ok:

          If ``True``, cells in the added worksheet will not raise an
          exception if written to more than once.

        :return:

          The :class:`~xlwt.Worksheet.Worksheet` that was added.

        r   )ÚUtils)Ú	Worksheetzinvalid worksheet name %rzduplicate worksheet name %réÿÿÿÿ)Ú r˜   r™   Ú
isinstancer   Údecoder   Úvalid_sheet_namer}   Úlowerr(   Úlenr'   Úappend)r0   Ú	sheetnameÚcell_overwrite_okr˜   r™   Ú
lower_namer2   r2   r3   Ú	add_sheetX  s   



zWorkbook.add_sheetc                 C   s:   t |tƒr
| j| S t |tƒr|  |¡}| j| S tdƒ‚)Nzsheet must be integer or string)rœ   r   r'   r   Úsheet_indexr}   )r0   ÚsheetÚsheetnumr2   r2   r3   Ú	get_sheetx  s   




zWorkbook.get_sheetc                 C   s4   z
| j | ¡  }W |S  ty   |  |¡ Y |S w r5   )r(   rŸ   ÚKeyErrorÚraise_bad_sheetname)r0   r¢   r¨   r2   r2   r3   r¦   �  s   ýýzWorkbook.sheet_indexc                 C   s   t d| ƒ‚)NzFormula: unknown sheet name %s)r}   )r0   r¢   r2   r2   r3   r«   ‰  ri   zWorkbook.raise_bad_sheetnamec                 C   s4   t |ƒ}d|  kr|k r|S  d||f }t|ƒ‚)Nr	   z2Formula: sheet index (%s) >= number of sheets (%d))rG   r}   )r0   Ústrg_refÚn_sheetsÚidxÚmsgr2   r2   r3   Úconvert_sheetindexŒ  s   ÿzWorkbook.convert_sheetindexc                 C   s,   || j v r
| j | S t| j ƒ | j |< }|S r5   )r*   r    )r0   Útagr®   r2   r2   r3   Ú_get_supbook_index“  s   

zWorkbook._get_supbook_indexc                 C   óJ   |   d¡| _d | _| jddf}|| jv rtdƒ‚t| jƒ | j|< | _d S )N)Úownbookr	   éþÿ  úcan't happen)r²   r,   r-   r)   r}   r    ©r0   Ú	referencer2   r2   r3   Úsetup_ownbook™  ó   
zWorkbook.setup_ownbookc                 C   r³   )N)Úxcallr	   rµ   r¶   )r²   r.   r/   r)   r}   r    r·   r2   r2   r3   Úsetup_xcall¡  rº   zWorkbook.setup_xcallc              	   C   sö  g }t | jƒ}| ¡ \}}|D ]˜\}}}| ¡ s0z	| j| ¡  }	W n ty/   |  |¡ Y nw |  ||¡}	||kr=|	}
n"| ¡ sYz	| j| ¡  }
W n tyX   |  |¡ Y nw |  ||¡}
|
|	k rod|||	|
f }t	|ƒ‚| j
d u rx|  ¡  | j
|	|
f}|| jv rŽ| || j| f¡ qt | jƒ}|dkr›t	dƒ‚|| j|< | ||f¡ q|D ]I\}}| j
d u r·|  ¡  | jd u rÀ|  ¡  | || jf¡ t|tƒsÓ| | j¡}|| jv rÞ| j| }n
t | jƒ | j|< }| |d |d f¡ qª| |¡ d S )Nz/Formula: sheets out of order; %r:%r -> (%d, %d)rU   z&More than 65536 inter-sheet referencesé   r   )r    r'   Úget_referencesÚisdigitr(   rŸ   rª   r«   r°   r}   r,   r¹   r)   r¡   r.   r¼   r/   rœ   r   r�   r   r+   Úpatch_references)r0   ÚformulaÚpatchesr­   Ú
sheet_refsÚ
xcall_refsÚref0Úref1ÚoffsetÚref0nÚref1nr¯   r¸   ÚnrefsÚfuncnamer®   r2   r2   r3   Úadd_sheet_reference©  s`   
ÿÿ
ÿ







zWorkbook.add_sheet_referencec                 C   s   t  t jj¡ ¡ S r5   )r   ÚBiff8BOFRecordÚBOOK_GLOBALÚgetr7   r2   r2   r3   Ú	__bof_recä  s   zWorkbook.__bof_recc                 C   ó   t  ¡  ¡ S r5   )r   Ú	EOFRecordrÏ   r7   r2   r2   r3   Ú	__eof_recç  ri   zWorkbook.__eof_recc                 C   rÑ   r5   )r   ÚInteraceHdrRecordrÏ   r7   r2   r2   r3   Ú__intf_hdr_recê  ri   zWorkbook.__intf_hdr_recc                 C   rÑ   r5   )r   ÚInteraceEndRecordrÏ   r7   r2   r2   r3   Ú__intf_end_recí  ri   zWorkbook.__intf_end_recc                 C   rÑ   r5   )r   Ú	MMSRecordrÏ   r7   r2   r2   r3   Ú__intf_mms_recð  ri   zWorkbook.__intf_mms_recc                 C   ó   t  | j¡ ¡ S r5   )r   ÚWriteAccessRecordr   rÏ   r7   r2   r2   r3   Ú__write_access_recó  r9   zWorkbook.__write_access_recc                 C   rÚ   r5   )r   ÚWindowProtectRecordr   rÏ   r7   r2   r2   r3   Ú__wnd_protect_recö  r9   zWorkbook.__wnd_protect_recc                 C   rÚ   r5   )r   ÚObjectProtectRecordr   rÏ   r7   r2   r2   r3   Ú__obj_protect_recù  r9   zWorkbook.__obj_protect_recc                 C   rÚ   r5   )r   ÚProtectRecordr   rÏ   r7   r2   r2   r3   Ú__protect_recü  r9   zWorkbook.__protect_recc                 C   rÑ   r5   )r   ÚPasswordRecordrÏ   r7   r2   r2   r3   Ú__password_recÿ  ri   zWorkbook.__password_recc                 C   rÑ   r5   )r   ÚProt4RevRecordrÏ   r7   r2   r2   r3   Ú__prot4rev_rec  ri   zWorkbook.__prot4rev_recc                 C   rÑ   r5   )r   ÚProt4RevPassRecordrÏ   r7   r2   r2   r3   Ú__prot4rev_pass_rec  ri   zWorkbook.__prot4rev_pass_recc                 C   rÚ   r5   )r   ÚBackupRecordr   rÏ   r7   r2   r2   r3   Ú__backup_rec  r9   zWorkbook.__backup_recc                 C   rÑ   r5   )r   ÚHideObjRecordrÏ   r7   r2   r2   r3   Ú__hide_obj_rec  ri   zWorkbook.__hide_obj_recc                 C   sx   d}|| j d> O }|| jd> O }|| jd> O }|| jd> O }|| jd> O }t | j| j| j	| j
|| j| j| j| j¡	 ¡ S )Nr	   r   é   é   é   )r   r   r   r   r    r   ÚWindow1Recordr   r   r   r   r   r   r   r   rÏ   )r0   Úflagsr2   r2   r3   Ú__window1_rec  s   üüzWorkbook.__window1_recc                 C   rÑ   r5   )r   ÚCodepageBiff8RecordrÏ   r7   r2   r2   r3   Ú__codepage_rec  ri   zWorkbook.__codepage_recc                 C   s   | j sdS t | j | j ¡ ¡ S ©Nó    )r   r   ÚCountryRecordrÏ   r7   r2   r2   r3   Ú__country_rec  s   zWorkbook.__country_recc                 C   rÑ   r5   )r   Ú	DSFRecordrÏ   r7   r2   r2   r3   Ú	__dsf_rec$  ri   zWorkbook.__dsf_recc                 C   s   t  t| jƒ¡ ¡ S r5   )r   ÚTabIDRecordr    r'   rÏ   r7   r2   r2   r3   Ú__tabid_rec'  s   zWorkbook.__tabid_recc                 C   rÑ   r5   )r   ÚFnGroupCountRecordrÏ   r7   r2   r2   r3   Ú__fngroupcount_rec*  ri   zWorkbook.__fngroupcount_recc                 C   rÚ   r5   )r   ÚDateModeRecordr#   rÏ   r7   r2   r2   r3   Ú__datemode_rec-  r9   zWorkbook.__datemode_recc                 C   rÚ   r5   )r   ÚPrecisionRecordr$   rÏ   r7   r2   r2   r3   Ú__precision_rec0  r9   zWorkbook.__precision_recc                 C   rÑ   r5   )r   ÚRefreshAllRecordrÏ   r7   r2   r2   r3   Ú__refresh_all_rec3  ri   zWorkbook.__refresh_all_recc                 C   rÑ   r5   )r   ÚBookBoolRecordrÏ   r7   r2   r2   r3   Ú__bookbool_rec6  ri   zWorkbook.__bookbool_recc                 C   ó
   | j  ¡ S r5   )r"   Úget_biff_datar7   r2   r2   r3   Ú%__all_fonts_num_formats_xf_styles_rec9  r?   z.Workbook.__all_fonts_num_formats_xf_styles_recc                 C   s"   | j d u rdS t | j ¡ ¡ }|S rõ   )r   r   ÚPaletteRecordrÏ   )r0   Úinfor2   r2   r3   Ú__palette_rec<  s   
zWorkbook.__palette_recc                 C   rÑ   r5   )r   ÚUseSelfsRecordrÏ   r7   r2   r2   r3   Ú__useselfs_recB  ri   zWorkbook.__useselfs_recc           	   	   C   s‚   d}| j D ]}|tt d|j|j| j¡ ¡ ƒ7 }q|| | }d}t|| j ƒD ]\}}|t ||j|j| j¡ ¡ 7 }||7 }q'|S )Nr	   rö   )	r'   r    r   ÚBoundSheetRecordÚ
visibilityÚnamer   rÏ   Úzip)	r0   Údata_len_beforeÚdata_len_afterÚsheet_biff_lensÚboundsheets_lenr§   ÚstartÚresultÚsheet_biff_lenr2   r2   r3   Ú__boundsheets_recE  s"   	
ÿþÿþ
zWorkbook.__boundsheets_recc           
      C   s,  g }dd„ | j  ¡ D ƒ}| ¡  |D ]V\}}|\}}|dkr.t t| jƒ¡ ¡ }| |¡ q|dkrct 	¡  ¡ }| |¡ dd„ | j
 ¡ D ƒ}| ¡  |D ]\}}tjdd|dd� ¡ }| |¡ qMqtd	| ƒ‚t| jƒdkr‘d
d„ | j ¡ D ƒ}| ¡  dd„ |D ƒ}t |¡ ¡ }	| |	¡ d |¡S )Nc                 S   ó   g | ]\}}||f‘qS r2   r2   )Ú.0r±   r®   r2   r2   r3   Ú
<listcomp>`  ó    z,Workbook.__all_links_rec.<locals>.<listcomp>r´   r»   c                 S   r  r2   r2   )r  r  r®   r2   r2   r3   r  j  r  r	   z )ÚoptionsÚindexr  Úfmlazunknown supbook stype %rc                 S   r  r2   r2   )r  Úrefr®   r2   r2   r3   r  t  r  c                 S   s   g | ]\}}|‘qS r2   r2   )r  r®   r"  r2   r2   r3   r  v  s    rö   )r*   ÚitemsÚsortr   ÚInternalReferenceSupBookRecordr    r'   rÏ   r¡   ÚXcallSupBookRecordr+   ÚExternnameRecordr}   r)   ÚExternSheetRecordÚjoin)
r0   ÚpiecesÚtempr®   r±   ÚstypeÚsnumÚrecr  Úexternsheet_recordr2   r2   r3   Ú__all_links_rec^  s:   
ÿÿý

zWorkbook.__all_links_recc                 C   r  r5   )r&   Úget_biff_recordr7   r2   r2   r3   Ú	__sst_rec{  r?   zWorkbook.__sst_recc                 C   s   dS rõ   r2   )r0   Úabs_stream_posr2   r2   r3   Ú__ext_sst_rec~  s   zWorkbook.__ext_sst_recc                 C   s  d}||   ¡ 7 }||  ¡ 7 }||  ¡ 7 }||  ¡ 7 }||  ¡ 7 }||  ¡ 7 }||  ¡ 7 }||  ¡ 7 }||  ¡ 7 }||  	¡ 7 }||  
¡ 7 }||  ¡ 7 }||  ¡ 7 }||  ¡ 7 }||  ¡ 7 }||  ¡ 7 }||  ¡ 7 }||  ¡ 7 }||  ¡ 7 }||  ¡ 7 }||  ¡ 7 }||  ¡ 7 }||  ¡ 7 }||  ¡ 7 }||  ¡ 7 }|  ¡ }|  ¡ }|  ¡ }|| | }|  d¡}|  ¡ }d| j| j _ d}g }	| jD ]}
|
 !¡ }||7 }|	 "t#|ƒ¡ qÁ|  $t#|ƒt#|ƒt#|ƒ t#|ƒ |	¡}t#|ƒt#|ƒ t#|ƒ t#|ƒ }|  |¡}|| | | | | S )Nrö   r	   T)%Ú_Workbook__bof_recÚ_Workbook__intf_hdr_recÚ_Workbook__intf_mms_recÚ_Workbook__intf_end_recÚ_Workbook__write_access_recÚ_Workbook__codepage_recÚ_Workbook__dsf_recÚ_Workbook__tabid_recÚ_Workbook__fngroupcount_recÚ_Workbook__wnd_protect_recÚ_Workbook__protect_recÚ_Workbook__obj_protect_recÚ_Workbook__password_recÚ_Workbook__prot4rev_recÚ_Workbook__prot4rev_pass_recÚ_Workbook__backup_recÚ_Workbook__hide_obj_recÚ_Workbook__window1_recÚ_Workbook__datemode_recÚ_Workbook__precision_recÚ_Workbook__refresh_all_recÚ_Workbook__bookbool_recÚ._Workbook__all_fonts_num_formats_xf_styles_recÚ_Workbook__palette_recÚ_Workbook__useselfs_recÚ_Workbook__country_recÚ_Workbook__all_links_recÚ_Workbook__sst_recÚ_Workbook__ext_sst_recÚ_Workbook__eof_recr'   r   Úselectedr  r¡   r    Ú_Workbook__boundsheets_rec)r0   ÚbeforeÚcountryÚ	all_linksÚshared_str_tableÚafterÚext_sstÚeofÚsheetsr  r§   ÚdataÚbundlesheetsÚsst_stream_posr2   r2   r3   r  ƒ  sV   

& 
zWorkbook.get_biff_datac                 C   s(   ddl m} | ¡ }| ||  ¡ ¡ dS )aÒ  
        This method is used to save the Workbook to a file in native Excel
        format.

        :param filename_or_stream:
          This can be a string containing a filename of
          the file, in which case the excel file is saved to disk using the name
          provided. It can also be a stream object with a write method, such as
          a :class:`~io.StringIO`, in which case the data for the excel
          file is written to the stream.
        r   )ÚCompoundDocN)r›   r`  ÚXlsDocÚsaver  )r0   Úfilename_or_streamr`  Údocr2   r2   r3   rb  ·  s   zWorkbook.saveN)r   r	   )F)tÚ__name__Ú
__module__Ú__qualname__Ú__doc__r4   r8   r>   rA   ÚpropertyÚownerrD   rE   Úcountry_coderH   rL   Úwnd_protectrM   rN   Úobj_protectrO   rP   ÚprotectrQ   rR   Úbackup_on_saverW   rX   ÚhposrZ   r[   Úvposr]   r^   Úwidthr`   ra   Úheightrb   rc   Úactive_sheetre   rf   Ú	tab_widthrg   rh   Úwnd_visiblerj   rk   Úwnd_minirl   rm   Úhscroll_visiblern   ro   Úvscroll_visiblerp   rq   Útabs_visiblerr   rs   Ú
dates_1904rt   ru   Úuse_cell_valuesrw   rv   r‡   r‹   rŒ   rŽ   r‘   r“   r”   r—   r¥   r©   r¦   r«   r°   r²   r¹   r¼   rÌ   r5  rR  r6  r8  r7  r9  r>  r@  r?  rA  rB  rC  rD  rE  rF  r:  rN  r;  r<  r=  rG  rH  rI  rJ  rK  rL  rM  rT  rO  rP  rQ  r  rb  r2   r2   r2   r3   r   -   sâ    
	1



















 	;4r   N)	r›   r   r   Úcompatr   r   r   Úobjectr   r2   r2   r2   r3   Ú<module>   s   (