
    j                      V    S SK rS SKJr  S SKJrJrJr  S SKJ	r	  S SK
Jr  S rS rS rg)	    N)load)TableTableRow	TableCell)P)Pathc                    SnU R                   R                  SS5      nU(       dF  U R                   R                  S5      S:X  a'  [        U R                   R                  S5      5      nSnOU R                   R                  S5      S:X  ak  S	nU R                  [        5      nU HL  nUR
                  R                  S
   S:X  a  M"  XWR                  R                  5       R                  5       -  nMN     SnU(       d  U(       a  U(       d  SnSn/ nU(       d,  [        [        U5      5       H  n	UR                  W5        M     U[        U5      4$ )NT)z/urn:oasis:names:tc:opendocument:xmlns:table:1.0znumber-columns-repeated1)0urn:oasis:names:tc:opendocument:xmlns:office:1.0z
value-typefloat)r   valueFstring    
annotationr   )
attributesgetr   getElementsByTyper   
parentNodeqname
firstChild__str__striprangeintappend)
cellisStrisLastnoValuerepetitions
cell_valuetexts_ptext_pretListis
             L/var/www/oekobilanz-rechner-gitlab-dev2026v8/cgi-bin/../pyscripts/readODS.pyget_cell_valuer(      s    G//%%&tvyzKT__(()klpww4??../lmn
			_	`dl	l
((+F  &&q)\9++335;;==J  WV
Gs;'(ANN:& )S%&&    c           
      z   [        U 5      nUR                  [        5      n0 nU GHT  n UR                  [        5      nU(       d  M#  / nUS   nUR                  [        5      n[        U5       Hi  u  pU	[        U5      S-
  :X  a  [        U
SS5      u  pO[        U
SS5      u  p[        U5      S:  d  MG  Xk Vs/ s H  oR                  5       PM     sn-  nMk     U(       d  M  / nUSS   GH  nUR                  [        5      nU(       d  M"  / n[        US   SS5      u  nn[        U5      S:X  a  MH  UU-  n[        S[        U5      5       HX  nU[        U5      S-
  :  a  [        UU   SS5      u  nnUU-  nM/  U[        U5      :  d  M@  [        UU   SS5      u  nnUU-  nMZ     [        U5      [        U5      -
  nUS:  a$  [        U5       H  nUR                  S5        M     OUS:  a  US U nUR                  U5        GM     U(       af  S[        4/USS   Vs/ s H  nUS4PM	     sn-   n [        R                  " U Vs/ s H  n[        U5      PM     snUS9X4R                  S5      '   GMT  GMW     U$ s  snf s  snf s  snf ! [          ad  n[#        S	UR                  S5       S
35        [#        SU 35        [#        SU(       a  US S OS 35        [#        S[%        U5       S35        e S nAff = f! [          a0  n[#        SUR                  S5       S[%        U5       S35        e S nAff = f)Nr   r   TF	Parameterf8)dtypenamez.<pre>Debug - Failed to create array for sheet z:
zdtype: zdata sample:    emptyzerror: z</pre>z$<pre>Debug - Error processing sheet z: )r   r   r   r   r   	enumeratelenr(   r   r   r   objectnparraytuplegetAttribute	Exceptionprintstr)	file_pathdocsheetssheet_arrayssheetrowscolumn_names
header_rowheader_cellsidxr   	cellValuenrCellsval
sheet_datarowcellsrow_data	parameterr&   	cell_datafullRowDiffcolr-   xes                             r'   readODSrR       sI   
y/C""5)FL:	**84DLaJ%77	BL&|4	#l+a//)7dD)I&Iw)7dE)J&Iy>A% I$FISYY[I$FFL 5  JABx--i8%3E!HeU%K"	7y>Q&I%q#e*-A3u:>)-;E!HeU-S*	7 I-SZ-;E!HeT-R*	7 I- . ",/#h-??";/ * 0 1_'5H!!(+-  .  &v./,WXWYJZ2[JZ3C;JZ2[[?Axx[eHf[eVWq[eHfns?tL!3!3F!;< Y x Y %G> 3\Hf  J5K]K]^dKeJffijkGE7+,MJ*Ra.G)TUVGCF8623  	89K9KF9S8TTVWZ[\W]V^^def	s   L A*L 6L :J 
L %B%L BL "J0L 6J
J

J 
L 
J
K=AK88K==L  
L:
+L55L:c                     [        U 5      n[        U 5      R                  S5      n[        S[	        U5      -   5        [
        R                  " U40 UD6  g )Nz.npzzsaving data to )rR   r   with_suffixr9   r:   r4   savez)filepathdictsavefilepaths      r'   saveODSdataToNPZrY   d   sD    8D>--f5L	
c,/
/0HH\"T"r)   )numpyr4   odf.opendocumentr   	odf.tabler   r   r   odf.textr   pathlibr   r(   rR   rY    r)   r'   <module>r`      s(     ! 0 0  '2BH#r)   