|
18 | 18 | import pandas.io.parsers as parsers
|
19 | 19 | from pandas.io.parsers import (read_csv, read_table, read_fwf,
|
20 | 20 | TextParser, TextFileReader)
|
21 |
| -from pandas.io.excel import ExcelFile, ExcelWriter, read_excel |
| 21 | +from pandas.io.excel import ExcelFile, ExcelWriter, read_excel, get_effective_cell |
22 | 22 | from pandas.util.testing import (assert_almost_equal,
|
23 | 23 | assert_series_equal,
|
24 | 24 | network,
|
@@ -259,6 +259,35 @@ def test_excel_table(self):
|
259 | 259 | skip_footer=1)
|
260 | 260 | tm.assert_frame_equal(df4, df.ix[:-1])
|
261 | 261 | tm.assert_frame_equal(df4, df5)
|
| 262 | + |
| 263 | + def test_read_effective_cells(self): |
| 264 | + _skip_if_no_xlrd() |
| 265 | + import xlrd |
| 266 | + |
| 267 | + pth = os.path.join(self.dirpath, 'merged_effective.xls') |
| 268 | + xls = ExcelFile(pth, formatting_info=True) |
| 269 | + book = xls.book |
| 270 | + sheet = book.sheet_by_index(0) |
| 271 | + self.assertEqual(get_effective_cell(sheet, 0, 0).value, 1) |
| 272 | + self.assertEqual(get_effective_cell(sheet, 0, 4).value, 5) |
| 273 | + |
| 274 | + self.assertEqual(get_effective_cell(sheet, 1, 0).value, "a") |
| 275 | + self.assertEqual(get_effective_cell(sheet, 1, 1).value, "b") #Top left of merged |
| 276 | + self.assertEqual(get_effective_cell(sheet, 1, 2).value, "b") #merged |
| 277 | + self.assertEqual(get_effective_cell(sheet, 1, 3).value, "c") |
| 278 | + self.assertEqual(get_effective_cell(sheet, 1, 4).value, "d") |
| 279 | + |
| 280 | + self.assert_(get_effective_cell(sheet, 2, 0).ctype in(xlrd.XL_CELL_BLANK, xlrd.XL_CELL_EMPTY)) |
| 281 | + self.assertEqual(get_effective_cell(sheet, 2, 1).value, "b") #merged |
| 282 | + self.assertEqual(get_effective_cell(sheet, 2, 2).value, "b") #merged |
| 283 | + self.assert_(get_effective_cell(sheet, 2, 3).ctype in(xlrd.XL_CELL_BLANK, xlrd.XL_CELL_EMPTY)) |
| 284 | + self.assert_(get_effective_cell(sheet, 2, 4).ctype in(xlrd.XL_CELL_BLANK, xlrd.XL_CELL_EMPTY)) |
| 285 | + |
| 286 | + self.assertEqual(get_effective_cell(sheet, 3, 0).value, 1) |
| 287 | + self.assert_(get_effective_cell(sheet, 3, 1).ctype in(xlrd.XL_CELL_BLANK, xlrd.XL_CELL_EMPTY)) |
| 288 | + self.assert_(get_effective_cell(sheet, 3, 2).ctype in(xlrd.XL_CELL_BLANK, xlrd.XL_CELL_EMPTY)) |
| 289 | + self.assertEqual(get_effective_cell(sheet, 3, 3).value, 4) |
| 290 | + self.assertEqual(get_effective_cell(sheet, 3, 4).value, 5) |
262 | 291 |
|
263 | 292 | def test_excel_read_buffer(self):
|
264 | 293 | _skip_if_no_xlrd()
|
|
0 commit comments