
lR\                 @   s   d  Z  d d l Z d d l m Z m Z d d l Z d d l Z d d l Z d d l m	 Z	 d Z
 d Z e j d  Z e j d  Z d d	   Z d
 d   Z d d   Z d d d  Z d d d  Z d d   Z d S)z Tablib - XLS Support.
    N)BytesIOxrange)	XLRDErrorxlszalignment: wrap onzfont: bold onc             C   s   y t  j d |   d SWn t t f k
 r2 Yn Xy t  j d |  j    d SWn t t f k
 rk Yn Xy t  j d |   d SWn d SYn Xd S)z6Returns True if given stream is a readable excel file.file_contentsTfilenameFN)xlrdopen_workbook	TypeErrorr   readAttributeError)stream r   H/var/www/dbchiro/venv/lib/python3.4/site-packages/tablib/formats/_xls.pydetect   s    r   c             C   s`   t  j d d  } | j |  j r* |  j n d  } t |  |  t   } | j |  | j   S)z&Returns XLS representation of Dataset.encodingutf8zTablib Dataset)xlwtWorkbook	add_sheettitle
dset_sheetr   savegetvalue)datasetwbwsr   r   r   r   
export_set)   s    !	r   c             C   s   t  j d d  } xO t |  j  D]> \ } } | j | j rF | j n d |  } t | |  q" Wt   } | j |  | j	   S)z'Returns XLS representation of DataBook.r   r   zSheet%s)
r   r   	enumerateZ	_datasetsr   r   r   r   r   r   )Zdatabookr   idsetr   r   r   r   r   export_book6   s    %	r!   Tc             C   s   |  j    t j d |  } | j d  } | j |  _ xT t | j  D]C } | d k rt | rt | j d  |  _	 qG |  j
 | j |   qG Wd S)z!Returns databook from XLS stream.r   r   N)wiper   r	   Zsheet_by_indexnamer   r   nrows
row_valuesheadersappend)r    	in_streamr&   xls_booksheetr   r   r   r   
import_setF   s    
r+   c             C   s   |  j    t j d |  } x | j   D] } t j   } | j | _ xT t | j	  D]C } | d k r | r | j
 d  | _ qW | j | j
 |   qW W|  j |  q) Wd S)z!Returns databook from XLS stream.r   r   N)r"   r   r	   ZsheetstablibZDatasetr#   r   r   r$   r%   r&   r'   r   )Zdbookr(   r&   r)   r*   datar   r   r   r   import_bookV   s    
r.   c       	      C   sg  |  j  d d  } xB t |  j  D]1 \ } } | } | j | d | | d f  q" Wx	t |  D] \ } } x t |  D] \ } } | d k r |  j r | j | | | t  d | _ d | _ q} t	 |  |  j
 k  r | j | | | t  q} y< d | k r| j | | | t  n | j | | |  Wq} t k
 rZ| j | | |  Yq} Xq} Wqd Wd S)z-Completes given worksheet from given Dataset.ZdictsFr      T
N)_packager   Z_separatorsinsertr&   writeboldZpanes_frozenZhorz_split_poslenwidthwrapr
   )	r   r   r1   r   sep_offsetrowjcolr   r   r   r   j   s$    #	r   )r   )__doc__sysZtablib.compatr   r   r,   r   r   Z
xlrd.biffhr   r   
extensionsZeasyxfr7   r4   r   r   r!   r+   r.   r   r   r   r   r   <module>   s    