@@ -209,6 +209,18 @@ def dummy_func(content, content_type=None, status=200, file_name=None):
209209ExcelResponse = dummy_func
210210
211211
212+ def _make_response (io_stream , file_type ,
213+ status = 200 , file_name = None ):
214+ io_stream .seek (0 )
215+ if file_name :
216+ if not file_name .endswith (file_type ):
217+ file_name = "%s.%s" % (file_name , file_type )
218+ return ExcelResponse (io_stream .read (),
219+ content_type = FILE_TYPE_MIME_TABLE [file_type ],
220+ status = status , file_name = file_name )
221+
222+
223+
212224def make_response (pyexcel_instance , file_type ,
213225 status = 200 , file_name = None , ** keywords ):
214226 """
@@ -232,17 +244,11 @@ def make_response(pyexcel_instance, file_type,
232244 """
233245 io = pe .get_io (file_type )
234246 pyexcel_instance .save_to_memory (file_type , io , ** keywords )
235- io .seek (0 )
236- if file_name :
237- if not file_name .endswith (file_type ):
238- file_name = "%s.%s" % (file_name , file_type )
239- return ExcelResponse (io .read (),
240- content_type = FILE_TYPE_MIME_TABLE [file_type ],
241- status = status , file_name = file_name )
247+ return _make_response (io , file_type , status , file_name )
242248
243249
244250def make_response_from_array (array , file_type ,
245- status = 200 , ** keywords ):
251+ status = 200 , file_name = None , ** keywords ):
246252 """
247253 Make a http response from an array
248254
@@ -251,12 +257,12 @@ def make_response_from_array(array, file_type,
251257 :param status: same as :meth:`~pyexcel_webio.make_response`
252258 :returns: http response
253259 """
254- return make_response ( pe .Sheet (array ),
255- file_type , status , ** keywords )
260+ io = pe .save_as (array = array , dest_file_type = file_type , ** keywords )
261+ return _make_response ( io , file_type , status , file_name )
256262
257263
258264def make_response_from_dict (adict , file_type ,
259- status = 200 , ** keywords ):
265+ status = 200 , file_name = None , ** keywords ):
260266 """
261267 Make a http response from a dictionary of lists
262268
@@ -265,13 +271,12 @@ def make_response_from_dict(adict, file_type,
265271 :param status: same as :meth:`~pyexcel_webio.make_response`
266272 :returns: http response
267273 """
268- sheet = pe .get_sheet (adict = adict )
269- return make_response (sheet ,
270- file_type , status , ** keywords )
274+ io = pe .save_as (adict = adict , dest_file_type = file_type , ** keywords )
275+ return _make_response (io , file_type , status , file_name )
271276
272277
273278def make_response_from_records (records , file_type ,
274- status = 200 , ** keywords ):
279+ status = 200 , file_name = None , ** keywords ):
275280 """
276281 Make a http response from a list of dictionaries
277282
@@ -280,13 +285,12 @@ def make_response_from_records(records, file_type,
280285 :param status: same as :meth:`~pyexcel_webio.make_response`
281286 :returns: http response
282287 """
283- sheet = pe .get_sheet (records = records )
284- return make_response (sheet ,
285- file_type , status , ** keywords )
288+ io = pe .save_as (records = records , dest_file_type = file_type , ** keywords )
289+ return _make_response (io , file_type , status , file_name )
286290
287291
288292def make_response_from_book_dict (adict ,
289- file_type , status = 200 ,
293+ file_type , status = 200 , file_name = None ,
290294 ** keywords ):
291295 """
292296 Make a http response from a dictionary of two dimensional
@@ -297,12 +301,12 @@ def make_response_from_book_dict(adict,
297301 :param status: same as :meth:`~pyexcel_webio.make_response`
298302 :returns: http response
299303 """
300- book = pe .get_book (bookdict = adict )
301- return make_response ( book , file_type , status , ** keywords )
304+ io = pe .save_book_as (bookdict = adict , dest_file_type = file_type , ** keywords )
305+ return _make_response ( io , file_type , status , file_name )
302306
303307
304308def make_response_from_query_sets (query_sets , column_names ,
305- file_type , status = 200 ,
309+ file_type , status = 200 , file_name = None ,
306310 ** keywords ):
307311 """
308312 Make a http response from a dictionary of two dimensional
@@ -315,8 +319,9 @@ def make_response_from_query_sets(query_sets, column_names,
315319 :param status: same as :meth:`~pyexcel_webio.make_response`
316320 :returns: a http response
317321 """
318- sheet = pe .get_sheet (query_sets = query_sets , column_names = column_names )
319- return make_response (sheet , file_type , status , ** keywords )
322+ io = pe .save_as (query_sets = query_sets , column_names = column_names ,
323+ dest_file_type = file_type , ** keywords )
324+ return _make_response (io , file_type , status , file_name )
320325
321326
322327def make_response_from_a_table (session , table ,
@@ -331,8 +336,9 @@ def make_response_from_a_table(session, table,
331336 :param status: same as :meth:`~pyexcel_webio.make_response`
332337 :returns: a http response
333338 """
334- sheet = pe .get_sheet (session = session , table = table , ** keywords )
335- return make_response (sheet , file_type , status , file_name = file_name , ** keywords )
339+ io = pe .save_as (session = session , table = table ,
340+ dest_file_type = file_type , ** keywords )
341+ return _make_response (io , file_type , status , file_name )
336342
337343
338344def make_response_from_tables (session , tables ,
@@ -347,5 +353,5 @@ def make_response_from_tables(session, tables,
347353 :param status: same as :meth:`~pyexcel_webio.make_response`
348354 :returns: a http response
349355 """
350- book = pe .get_book (session = session , tables = tables , ** keywords )
351- return make_response ( book , file_type , status , file_name = file_name , ** keywords )
356+ io = pe .save_book_as (session = session , tables = tables , dest_file_type = file_type , ** keywords )
357+ return _make_response ( io , file_type , status , file_name )
0 commit comments