@@ -43,25 +43,18 @@ def name(self):
43
43
"""sheet name"""
44
44
return self ._native_sheet .title
45
45
46
- def number_of_rows (self ):
46
+ def _iterate_rows (self ):
47
47
"""
48
48
Number of rows in the xls sheet
49
49
"""
50
- return self ._native_sheet .max_row
50
+ return self ._native_sheet .rows
51
51
52
- def number_of_columns (self ):
52
+ def _iterate_columns (self , row ):
53
53
"""
54
54
Number of columns in the xls sheet
55
55
"""
56
- return self ._native_sheet .max_column
57
-
58
- def _cell_value (self , row , column ):
59
- """
60
- Random access to the xls cells
61
- """
62
- actual_row = row + 1
63
- cell_location = "%s%d" % (get_columns (column ), actual_row )
64
- return self ._native_sheet [cell_location ].value
56
+ for cell in row :
57
+ yield cell .value
65
58
66
59
67
60
class XLSXBook (BookReader ):
@@ -73,12 +66,12 @@ class XLSXBook(BookReader):
73
66
def open (self , file_name , ** keywords ):
74
67
BookReader .open (self , file_name , ** keywords )
75
68
self ._get_params ()
76
- self ._load_from_file ( )
69
+ self ._load_the_excel_file ( file_name )
77
70
78
71
def open_stream (self , file_stream , ** keywords ):
79
72
BookReader .open_stream (self , file_stream , ** keywords )
80
73
self ._get_params ()
81
- self ._load_from_memory ( )
74
+ self ._load_the_excel_file ( file_stream )
82
75
83
76
def read_sheet_by_name (self , sheet_name ):
84
77
sheet = self ._native_book .get_sheet_by_name (sheet_name )
@@ -110,13 +103,9 @@ def read_sheet(self, native_sheet):
110
103
sheet = XLSXSheet (native_sheet , ** self ._keywords )
111
104
return {sheet .name : sheet .to_array ()}
112
105
113
- def _load_from_memory (self ):
114
- self ._native_book = openpyxl .load_workbook (
115
- filename = self ._file_stream , data_only = True )
116
-
117
- def _load_from_file (self ):
106
+ def _load_the_excel_file (self , file_alike_object ):
118
107
self ._native_book = openpyxl .load_workbook (
119
- filename = self . _file_name , data_only = True )
108
+ filename = file_alike_object , data_only = True , read_only = True )
120
109
121
110
def _get_params (self ):
122
111
self .skip_hidden_sheets = self ._keywords .get (
0 commit comments