@@ -187,13 +187,11 @@ def write_xls(path_to_xls, header, data, ui=None, files=None):
187187 for col in xrange (len (header )):
188188 worksheet .write (0 ,col ,header [col ],style )
189189
190- counter = 0
191190 if ui and files :
192191 rows_part = len (data )/ files
193192
194193 # Write data
195- for row in xrange (0 ,len (data )):
196- counter += 1
194+ for row in xrange (0 ,len (data )):
197195 for col in xrange (len (header )):
198196 col_name = header [col ]
199197 try :
@@ -204,8 +202,8 @@ def write_xls(path_to_xls, header, data, ui=None, files=None):
204202 worksheet .write (row + 1 , col , correct_datatype (value ) )
205203
206204 if not ui is None :
207- if counter % rows_part == 0 :
208- part = counter / rows_part
205+ if row % rows_part == 0 :
206+ part = row / rows_part
209207 progress = int ((part + files )/ float (2 * files + 1 )* 100 )
210208 ui .progressBar .setValue (progress )
211209
@@ -235,36 +233,34 @@ def write_xlsx(path_to_xlsx, header, data, ui=None, files=None):
235233 # Sort header alphabetically
236234 header .sort ()
237235
238- workbook = Workbook ()
239- worksheet = workbook .worksheets [ 0 ]
236+ workbook = Workbook (optimized_write = True )
237+ worksheet = workbook .create_sheet ()
240238
241239 worksheet .title = "merged_data"
242-
243- # Write header in bold
244- for col in xrange (len (header )):
245- cell = worksheet .cell (row = 0 ,column = col )
246- cell .value = header [col ]
247- cell .style .font .bold = True
248-
249- counter = 0
240+
250241 if ui and files :
251242 rows_part = len (data )/ files
252243
253- # Write data
244+ ### Write data
245+
246+ # Write column names first
247+ worksheet .append (header )
248+
254249 for row in xrange (0 ,len (data )):
255- counter += 1
250+ row_data = []
256251 for col in xrange (len (header )):
257252 col_name = header [col ]
258253 try :
259254 value = data [row ][col_name ]
260255 except KeyError :
261256 value = ""
257+ row_data .append (correct_datatype (value ))
262258
263- worksheet .cell ( row = row + 1 , column = col ). value = correct_datatype ( value )
259+ worksheet .append ( row_data )
264260
265261 if not ui is None :
266- if counter % rows_part == 0 :
267- part = counter / rows_part
262+ if row % rows_part == 0 :
263+ part = row / rows_part
268264 progress = int ((part + files )/ float (2 * files + 1 )* 100 )
269265 ui .progressBar .setValue (progress )
270266
0 commit comments