@@ -37,7 +37,7 @@ class ExcelInput(object):
3737
3838 The source could be from anywhere, memory or file system
3939 """
40- def load_single_sheet (self , sheet_name = None , ** keywords ):
40+ def get_params (self , sheet_name = None , ** keywords ):
4141 """Abstract method
4242
4343 :param sheet_name: For an excel book, there could be multiple
@@ -49,17 +49,7 @@ def load_single_sheet(self, sheet_name=None, **keywords):
4949 """
5050 raise NotImplementedError ("Please implement this function" )
5151
52- def load_book (self , ** keywords ):
53- """Abstract method
54-
55- :param form_field_name: the file field name in the html
56- form for file upload
57- :param keywords: additional key words
58- :returns: A instance of :class:`Book`
59- """
60- raise NotImplementedError ("Please implement this function" )
61-
62- def get_sheet (self , sheet_name = None , ** keywords ):
52+ def get_sheet (self , ** keywords ):
6353 """
6454 Get a :class:`Sheet` instance from the file
6555
@@ -70,9 +60,10 @@ def get_sheet(self, sheet_name=None, **keywords):
7060 :param keywords: additional key words
7161 :returns: A sheet object
7262 """
73- return self .load_single_sheet (sheet_name = sheet_name , ** keywords )
63+ params = self .get_params (** keywords )
64+ return pe .get_sheet (** params )
7465
75- def get_array (self , sheet_name = None , ** keywords ):
66+ def get_array (self , ** keywords ):
7667 """
7768 Get a list of lists from the file
7869
@@ -83,13 +74,10 @@ def get_array(self, sheet_name=None, **keywords):
8374 :param keywords: additional key words
8475 :returns: A list of lists
8576 """
86- sheet = self .get_sheet (sheet_name = sheet_name , ** keywords )
87- if sheet :
88- return sheet .to_array ()
89- else :
90- return None
77+ params = self .get_params (** keywords )
78+ return pe .get_array (** params )
9179
92- def get_dict (self , sheet_name = None , name_columns_by_row = 0 , ** keywords ):
80+ def get_dict (self , ** keywords ):
9381 """Get a dictionary from the file
9482
9583 :param sheet_name: For an excel book, there could be multiple
@@ -99,16 +87,12 @@ def get_dict(self, sheet_name=None, name_columns_by_row=0, **keywords):
9987 :param keywords: additional key words
10088 :returns: A dictionary
10189 """
102- sheet = self .load_single_sheet (
103- sheet_name = sheet_name ,
104- name_columns_by_row = name_columns_by_row ,
105- ** keywords )
106- if sheet :
107- return sheet .to_dict ()
108- else :
109- return None
90+ params = self .get_params (** keywords )
91+ if 'name_columns_by_row' not in params :
92+ params ['name_columns_by_row' ] = 0
93+ return pe .get_dict (** params )
11094
111- def get_records (self , sheet_name = None , name_columns_by_row = 0 , ** keywords ):
95+ def get_records (self , ** keywords ):
11296 """Get a list of records from the file
11397
11498 :param sheet_name: For an excel book, there could be multiple
@@ -118,21 +102,16 @@ def get_records(self, sheet_name=None, name_columns_by_row=0, **keywords):
118102 :param keywords: additional key words
119103 :returns: A list of records
120104 """
121- sheet = self .load_single_sheet (
122- sheet_name = sheet_name ,
123- name_columns_by_row = name_columns_by_row ,
124- ** keywords )
125- if sheet :
126- return sheet .to_records ()
127- else :
128- return None
105+ params = self .get_params (** keywords )
106+ if 'name_columns_by_row' not in params :
107+ params ['name_columns_by_row' ] = 0
108+ return pe .get_records (** params )
129109
130110 def save_to_database (
131111 self ,
132112 session = None , table = None , initializer = None , mapdict = None ,
133113 auto_commit = True ,
134- sheet_name = None , name_columns_by_row = 0 , name_rows_by_column = - 1 ,
135- field_name = None , ** keywords ):
114+ ** keywords ):
136115 """
137116 Save data from a sheet to database
138117
@@ -142,38 +121,35 @@ def save_to_database(
142121 :param mapdict: the explicit table column names if your excel data do not have the exact column names
143122 :param keywords: additional keywords to :meth:`pyexcel.Sheet.save_to_database`
144123 """
145- sheet = self .load_single_sheet (
146- field_name = field_name ,
147- sheet_name = sheet_name ,
148- name_columns_by_row = name_columns_by_row ,
149- name_rows_by_column = name_rows_by_column ,
150- ** keywords )
151- if sheet :
152- sheet .save_to_database (session ,
153- table ,
154- initializer = initializer ,
155- mapdict = mapdict ,
156- auto_commit = auto_commit )
124+ params = self .get_params (** keywords )
125+ if 'name_columns_by_row' not in params :
126+ params ['name_columns_by_row' ] = 0
127+ if 'name_rows_by_column' not in params :
128+ params ['name_rows_by_column' ] = - 1
129+ params ['dest_session' ]= session
130+ params ['dest_table' ] = table
131+ params ['dest_initializer' ]= initializer
132+ params ['dest_mapdict' ] = mapdict
133+ params ['dest_auto_commit' ]= auto_commit
134+ pe .save_as (** params )
157135
158136 def get_book (self , ** keywords ):
159137 """Get a instance of :class:`Book` from the file
160138
161139 :param keywords: additional key words
162140 :returns: A instance of :class:`Book`
163141 """
164- return self .load_book (** keywords )
142+ params = self .get_params (** keywords )
143+ return pe .get_book (** params )
165144
166145 def get_book_dict (self , ** keywords ):
167146 """Get a dictionary of two dimensional array from the file
168147
169148 :param keywords: additional key words
170149 :returns: A dictionary of two dimensional arrays
171150 """
172- book = self .load_book (** keywords )
173- if book :
174- return book .to_dict ()
175- else :
176- return None
151+ params = self .get_params (** keywords )
152+ return pe .get_book_dict (** params )
177153
178154 def save_book_to_database (
179155 self ,
@@ -190,13 +166,13 @@ def save_book_to_database(
190166 :param keywords: additional keywords to :meth:`pyexcel.Book.save_to_database`
191167
192168 """
193- book = self .load_book (** keywords )
194- if book :
195- book . save_to_database ( session ,
196- tables ,
197- initializers = initializers ,
198- mapdicts = mapdicts ,
199- auto_commit = auto_commit )
169+ params = self .get_params (** keywords )
170+ params [ 'dest_session' ] = session
171+ params [ 'dest_tables' ] = tables
172+ params [ 'dest_initializers' ] = initializers
173+ params [ 'dest_mapdicts' ] = mapdicts
174+ params [ 'dest_auto_commit' ] = auto_commit
175+ pe . save_book_as ( ** params )
200176
201177
202178class ExcelInputInMultiDict (ExcelInput ):
@@ -211,30 +187,19 @@ def get_file_tuple(self, field_name):
211187 """
212188 raise NotImplementedError ("Please implement this function" )
213189
214- def load_single_sheet (self , field_name = None , sheet_name = None , ** keywords ):
190+ def get_params (self , field_name = None , ** keywords ):
215191 """
216192 Load the single sheet from named form field
217193 """
218194 file_type , file_handle = self .get_file_tuple (field_name )
219195 if file_type is not None and file_handle is not None :
220- return pe .get_sheet (file_type = file_type ,
221- file_content = file_handle .read (),
222- sheet_name = sheet_name ,
223- ** keywords )
224- else :
225- return None
226-
227- def load_book (self , field_name = None , ** keywords ):
228- """
229- Load the book from named form field
230- """
231- file_type , file_handle = self .get_file_tuple (field_name )
232- if file_type is not None and file_handle is not None :
233- return pe .get_book (file_type = file_type ,
234- file_content = file_handle .read (),
235- ** keywords )
196+ keywords = {
197+ 'file_type' : file_type ,
198+ 'file_content' : file_handle .read ()
199+ }
200+ return keywords
236201 else :
237- return None
202+ raise Exception ( "Invalid parameters" )
238203
239204
240205def dummy_func (content , content_type = None , status = 200 , file_name = None ):
0 commit comments