@@ -37,7 +37,7 @@ class ExcelInput(object):
37
37
38
38
The source could be from anywhere, memory or file system
39
39
"""
40
- def load_single_sheet (self , sheet_name = None , ** keywords ):
40
+ def get_params (self , sheet_name = None , ** keywords ):
41
41
"""Abstract method
42
42
43
43
:param sheet_name: For an excel book, there could be multiple
@@ -49,17 +49,7 @@ def load_single_sheet(self, sheet_name=None, **keywords):
49
49
"""
50
50
raise NotImplementedError ("Please implement this function" )
51
51
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 ):
63
53
"""
64
54
Get a :class:`Sheet` instance from the file
65
55
@@ -70,9 +60,10 @@ def get_sheet(self, sheet_name=None, **keywords):
70
60
:param keywords: additional key words
71
61
:returns: A sheet object
72
62
"""
73
- return self .load_single_sheet (sheet_name = sheet_name , ** keywords )
63
+ params = self .get_params (** keywords )
64
+ return pe .get_sheet (** params )
74
65
75
- def get_array (self , sheet_name = None , ** keywords ):
66
+ def get_array (self , ** keywords ):
76
67
"""
77
68
Get a list of lists from the file
78
69
@@ -83,13 +74,10 @@ def get_array(self, sheet_name=None, **keywords):
83
74
:param keywords: additional key words
84
75
:returns: A list of lists
85
76
"""
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 )
91
79
92
- def get_dict (self , sheet_name = None , name_columns_by_row = 0 , ** keywords ):
80
+ def get_dict (self , ** keywords ):
93
81
"""Get a dictionary from the file
94
82
95
83
: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):
99
87
:param keywords: additional key words
100
88
:returns: A dictionary
101
89
"""
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 )
110
94
111
- def get_records (self , sheet_name = None , name_columns_by_row = 0 , ** keywords ):
95
+ def get_records (self , ** keywords ):
112
96
"""Get a list of records from the file
113
97
114
98
: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):
118
102
:param keywords: additional key words
119
103
:returns: A list of records
120
104
"""
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 )
129
109
130
110
def save_to_database (
131
111
self ,
132
112
session = None , table = None , initializer = None , mapdict = None ,
133
113
auto_commit = True ,
134
- sheet_name = None , name_columns_by_row = 0 , name_rows_by_column = - 1 ,
135
- field_name = None , ** keywords ):
114
+ ** keywords ):
136
115
"""
137
116
Save data from a sheet to database
138
117
@@ -142,38 +121,35 @@ def save_to_database(
142
121
:param mapdict: the explicit table column names if your excel data do not have the exact column names
143
122
:param keywords: additional keywords to :meth:`pyexcel.Sheet.save_to_database`
144
123
"""
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 )
157
135
158
136
def get_book (self , ** keywords ):
159
137
"""Get a instance of :class:`Book` from the file
160
138
161
139
:param keywords: additional key words
162
140
:returns: A instance of :class:`Book`
163
141
"""
164
- return self .load_book (** keywords )
142
+ params = self .get_params (** keywords )
143
+ return pe .get_book (** params )
165
144
166
145
def get_book_dict (self , ** keywords ):
167
146
"""Get a dictionary of two dimensional array from the file
168
147
169
148
:param keywords: additional key words
170
149
:returns: A dictionary of two dimensional arrays
171
150
"""
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 )
177
153
178
154
def save_book_to_database (
179
155
self ,
@@ -190,13 +166,13 @@ def save_book_to_database(
190
166
:param keywords: additional keywords to :meth:`pyexcel.Book.save_to_database`
191
167
192
168
"""
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 )
200
176
201
177
202
178
class ExcelInputInMultiDict (ExcelInput ):
@@ -211,30 +187,19 @@ def get_file_tuple(self, field_name):
211
187
"""
212
188
raise NotImplementedError ("Please implement this function" )
213
189
214
- def load_single_sheet (self , field_name = None , sheet_name = None , ** keywords ):
190
+ def get_params (self , field_name = None , ** keywords ):
215
191
"""
216
192
Load the single sheet from named form field
217
193
"""
218
194
file_type , file_handle = self .get_file_tuple (field_name )
219
195
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
236
201
else :
237
- return None
202
+ raise Exception ( "Invalid parameters" )
238
203
239
204
240
205
def dummy_func (content , content_type = None , status = 200 , file_name = None ):
0 commit comments