@@ -78,17 +78,17 @@ def read_excel(io, sheetname=0, **kwds):
78
78
and file. For file URLs, a host is expected. For instance, a local
79
79
file could be file://localhost/path/to/workbook.xlsx
80
80
sheetname : string, int, mixed list of strings/ints, or None, default 0
81
-
82
- Strings are used for sheet names, Integers are used in zero-indexed sheet
83
- positions.
84
-
81
+
82
+ Strings are used for sheet names, Integers are used in zero-indexed sheet
83
+ positions.
84
+
85
85
Lists of strings/integers are used to request multiple sheets.
86
-
86
+
87
87
Specify None to get all sheets.
88
-
88
+
89
89
str|int -> DataFrame is returned.
90
90
list|None -> Dict of DataFrames is returned, with keys representing sheets.
91
-
91
+
92
92
Available Cases
93
93
94
94
* Defaults to 0 -> 1st sheet as a DataFrame
@@ -143,11 +143,6 @@ def read_excel(io, sheetname=0, **kwds):
143
143
for more information on when a Dict of Dataframes is returned.
144
144
145
145
"""
146
- if 'kind' in kwds :
147
- kwds .pop ('kind' )
148
- warn ("kind keyword is no longer supported in read_excel and may be "
149
- "removed in a future version" , FutureWarning )
150
-
151
146
engine = kwds .pop ('engine' , None )
152
147
153
148
return ExcelFile (io , engine = engine ).parse (sheetname = sheetname , ** kwds )
@@ -207,19 +202,19 @@ def parse(self, sheetname=0, header=0, skiprows=None, skip_footer=0,
207
202
Parameters
208
203
----------
209
204
sheetname : string, int, mixed list of strings/ints, or None, default 0
210
-
211
- Strings are used for sheet names, Integers are used in zero-indexed sheet
212
- positions.
213
-
205
+
206
+ Strings are used for sheet names, Integers are used in zero-indexed sheet
207
+ positions.
208
+
214
209
Lists of strings/integers are used to request multiple sheets.
215
-
210
+
216
211
Specify None to get all sheets.
217
-
212
+
218
213
str|int -> DataFrame is returned.
219
214
list|None -> Dict of DataFrames is returned, with keys representing sheets.
220
-
215
+
221
216
Available Cases
222
-
217
+
223
218
* Defaults to 0 -> 1st sheet as a DataFrame
224
219
* 1 -> 2nd sheet as a DataFrame
225
220
* "Sheet1" -> 1st sheet as a DataFrame
@@ -336,7 +331,7 @@ def _parse_excel(self, sheetname=0, header=0, skiprows=None, skip_footer=0,
336
331
def _parse_cell (cell_contents ,cell_typ ):
337
332
"""converts the contents of the cell into a pandas
338
333
appropriate object"""
339
-
334
+
340
335
if cell_typ == XL_CELL_DATE :
341
336
if xlrd_0_9_3 :
342
337
# Use the newer xlrd datetime handling.
@@ -379,9 +374,9 @@ def _parse_cell(cell_contents,cell_typ):
379
374
xlrd_0_9_3 = True
380
375
else :
381
376
xlrd_0_9_3 = False
382
-
377
+
383
378
ret_dict = False
384
-
379
+
385
380
#Keep sheetname to maintain backwards compatibility.
386
381
if isinstance (sheetname , list ):
387
382
sheets = sheetname
@@ -391,31 +386,31 @@ def _parse_cell(cell_contents,cell_typ):
391
386
ret_dict = True
392
387
else :
393
388
sheets = [sheetname ]
394
-
389
+
395
390
#handle same-type duplicates.
396
391
sheets = list (set (sheets ))
397
-
392
+
398
393
output = {}
399
-
394
+
400
395
for asheetname in sheets :
401
396
if verbose :
402
397
print ("Reading sheet %s" % asheetname )
403
-
398
+
404
399
if isinstance (asheetname , compat .string_types ):
405
400
sheet = self .book .sheet_by_name (asheetname )
406
- else : # assume an integer if not a string
407
- sheet = self .book .sheet_by_index (asheetname )
408
-
401
+ else : # assume an integer if not a string
402
+ sheet = self .book .sheet_by_index (asheetname )
403
+
409
404
data = []
410
405
should_parse = {}
411
-
406
+
412
407
for i in range (sheet .nrows ):
413
408
row = []
414
409
for j , (value , typ ) in enumerate (zip (sheet .row_values (i ),
415
410
sheet .row_types (i ))):
416
411
if parse_cols is not None and j not in should_parse :
417
412
should_parse [j ] = self ._should_parse (j , parse_cols )
418
-
413
+
419
414
if parse_cols is None or should_parse [j ]:
420
415
row .append (_parse_cell (value ,typ ))
421
416
data .append (row )
@@ -436,14 +431,14 @@ def _parse_cell(cell_contents,cell_typ):
436
431
skip_footer = skip_footer ,
437
432
chunksize = chunksize ,
438
433
** kwds )
439
-
434
+
440
435
output [asheetname ] = parser .read ()
441
-
436
+
442
437
if ret_dict :
443
438
return output
444
439
else :
445
440
return output [asheetname ]
446
-
441
+
447
442
448
443
@property
449
444
def sheet_names (self ):
0 commit comments