Skip to content

Commit c61998c

Browse files
committed
👕 code refactoring
1 parent dbcb746 commit c61998c

File tree

1 file changed

+28
-28
lines changed

1 file changed

+28
-28
lines changed

pyexcel_xlsx/xlsxr.py

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,32 @@
1414
from pyexcel_io._compact import OrderedDict, irange
1515

1616

17+
class FastSheet(SheetReader):
18+
"""
19+
Iterate through rows
20+
"""
21+
@property
22+
def name(self):
23+
"""sheet name"""
24+
return self._native_sheet.title
25+
26+
def row_iterator(self):
27+
"""
28+
openpyxl row iterator
29+
30+
http://openpyxl.readthedocs.io/en/default/optimized.html
31+
"""
32+
for row in self._native_sheet.rows:
33+
yield row
34+
35+
def column_iterator(self, row):
36+
"""
37+
a generator for the values in a row
38+
"""
39+
for cell in row:
40+
yield cell.value
41+
42+
1743
class MergedCell(object):
1844
def __init__(self, cell_ranges_str):
1945
topleft, bottomright = cell_ranges_str.split(':')
@@ -41,33 +67,7 @@ def convert_coordinate(cell_coordinate_with_letter):
4167
return row, col
4268

4369

44-
class XLSXSheet(SheetReader):
45-
"""
46-
Iterate through rows
47-
"""
48-
@property
49-
def name(self):
50-
"""sheet name"""
51-
return self._native_sheet.title
52-
53-
def row_iterator(self):
54-
"""
55-
openpyxl row iterator
56-
57-
http://openpyxl.readthedocs.io/en/default/optimized.html
58-
"""
59-
for row in self._native_sheet.rows:
60-
yield row
61-
62-
def column_iterator(self, row):
63-
"""
64-
a generator for the values in a row
65-
"""
66-
for cell in row:
67-
yield cell.value
68-
69-
70-
class SlowSheet(XLSXSheet):
70+
class SlowSheet(FastSheet):
7171
"""
7272
This sheet will be slower because it does not use readonly sheet
7373
"""
@@ -184,7 +184,7 @@ def read_sheet(self, native_sheet):
184184
if self.skip_hidden_row_and_column or self.detect_merged_cells:
185185
sheet = SlowSheet(native_sheet, **self._keywords)
186186
else:
187-
sheet = XLSXSheet(native_sheet, **self._keywords)
187+
sheet = FastSheet(native_sheet, **self._keywords)
188188
return {sheet.name: sheet.to_array()}
189189

190190
def close(self):

0 commit comments

Comments
 (0)