diff --git a/pandas/io/excel.py b/pandas/io/excel.py index 534a88e303dbf..031081f557794 100644 --- a/pandas/io/excel.py +++ b/pandas/io/excel.py @@ -78,10 +78,10 @@ def __init__(self, path_or_buf, kind=None, **kwds): self.tmpfile = None if isinstance(path_or_buf, compat.string_types): - self.book = xlrd.open_workbook(path_or_buf) + self.book = xlrd.open_workbook(path_or_buf, **kwds) else: data = path_or_buf.read() - self.book = xlrd.open_workbook(file_contents=data) + self.book = xlrd.open_workbook(file_contents=data, **kwds) def parse(self, sheetname, header=0, skiprows=None, skip_footer=0, index_col=None, parse_cols=None, parse_dates=False, diff --git a/pandas/io/tests/data/merged.xls b/pandas/io/tests/data/merged.xls new file mode 100755 index 0000000000000..14b20be0788b3 Binary files /dev/null and b/pandas/io/tests/data/merged.xls differ diff --git a/pandas/io/tests/test_excel.py b/pandas/io/tests/test_excel.py index 1ac4d4e31ed10..07ea633987210 100644 --- a/pandas/io/tests/test_excel.py +++ b/pandas/io/tests/test_excel.py @@ -260,6 +260,24 @@ def test_excel_table(self): tm.assert_frame_equal(df4, df.ix[:-1]) tm.assert_frame_equal(df4, df5) + def test_excel_read_merged_cells(self): + _skip_if_no_xlrd() + + pth = os.path.join(self.dirpath, 'merged.xls') + xls = ExcelFile(pth, formatting_info=True) + book = xls.book + sheet = book.sheet_by_index(0) + merged_cells = sheet.merged_cells + + self.assertEquals(len(merged_cells), 1) + rlo, rhi, clo, chi = merged_cells[0] + + self.assertEquals(rlo, 1) + self.assertEquals(rhi, 1+1) + + self.assertEquals(clo, 0) + self.assertEquals(chi, 1+1) + def test_excel_read_buffer(self): _skip_if_no_xlrd() _skip_if_no_openpyxl()