From 9df5fb88fcdc1f4ff9328930841ec13f15b1229e Mon Sep 17 00:00:00 2001 From: Shannon Wang Date: Thu, 10 Dec 2015 20:57:30 -0800 Subject: [PATCH] BUG: read_excel fails when empty sheets exist and sheetname=None #11711 --- doc/source/whatsnew/v0.18.0.txt | 2 ++ pandas/io/excel.py | 3 ++- pandas/io/tests/test_excel.py | 9 +++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/doc/source/whatsnew/v0.18.0.txt b/doc/source/whatsnew/v0.18.0.txt index 0710f65dc9a74..a590d8a3afd15 100644 --- a/doc/source/whatsnew/v0.18.0.txt +++ b/doc/source/whatsnew/v0.18.0.txt @@ -230,3 +230,5 @@ Bug Fixes - Bug in ``df.replace`` while replacing value in mixed dtype ``Dataframe`` (:issue:`11698`) + +- Bug in ``read_excel`` failing to read any non-empty sheets when empty sheets exist and ``sheetname=None`` (:issue:`11711`) diff --git a/pandas/io/excel.py b/pandas/io/excel.py index 304cc3d346d1f..dec7da513fb42 100644 --- a/pandas/io/excel.py +++ b/pandas/io/excel.py @@ -391,7 +391,8 @@ def _parse_cell(cell_contents,cell_typ): data.append(row) if sheet.nrows == 0: - return DataFrame() + output[asheetname] = DataFrame() + continue if com.is_list_like(header) and len(header) == 1: header = header[0] diff --git a/pandas/io/tests/test_excel.py b/pandas/io/tests/test_excel.py index 35aa847492d69..cc9f8c564ebf5 100644 --- a/pandas/io/tests/test_excel.py +++ b/pandas/io/tests/test_excel.py @@ -382,6 +382,15 @@ def test_reading_multiple_specific_sheets(self): tm.assert_contains_all(expected_keys, dfs.keys()) assert len(expected_keys) == len(dfs.keys()) + def test_reading_all_sheets_with_blank(self): + # Test reading all sheetnames by setting sheetname to None, + # In the case where some sheets are blank. + # Issue #11711 + basename = 'blank_with_header' + dfs = self.get_exceldf(basename, sheetname=None) + expected_keys = ['Sheet1', 'Sheet2', 'Sheet3'] + tm.assert_contains_all(expected_keys, dfs.keys()) + # GH6403 def test_read_excel_blank(self): actual = self.get_exceldf('blank', 'Sheet1')