Skip to content

Commit 375d179

Browse files
committed
fix #13, open the book in read_only mode
1 parent 2f3df21 commit 375d179

File tree

2 files changed

+11
-21
lines changed

2 files changed

+11
-21
lines changed

CHANGELOG.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ Updated
88
********************************************************************************
99

1010
#. Code refactoring with pyexcel-io v 0.3.0
11-
11+
#. `#13 <https://github.com/pyexcel/pyexcel-xlsx/issues/13>`_, turn read_only
12+
flag on openpyxl.
1213

1314
0.2.3 - 05.11.2016
1415
--------------------------------------------------------------------------------

pyexcel_xlsx/xlsx.py

Lines changed: 9 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -43,25 +43,18 @@ def name(self):
4343
"""sheet name"""
4444
return self._native_sheet.title
4545

46-
def number_of_rows(self):
46+
def _iterate_rows(self):
4747
"""
4848
Number of rows in the xls sheet
4949
"""
50-
return self._native_sheet.max_row
50+
return self._native_sheet.rows
5151

52-
def number_of_columns(self):
52+
def _iterate_columns(self, row):
5353
"""
5454
Number of columns in the xls sheet
5555
"""
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
6558

6659

6760
class XLSXBook(BookReader):
@@ -73,12 +66,12 @@ class XLSXBook(BookReader):
7366
def open(self, file_name, **keywords):
7467
BookReader.open(self, file_name, **keywords)
7568
self._get_params()
76-
self._load_from_file()
69+
self._load_the_excel_file(file_name)
7770

7871
def open_stream(self, file_stream, **keywords):
7972
BookReader.open_stream(self, file_stream, **keywords)
8073
self._get_params()
81-
self._load_from_memory()
74+
self._load_the_excel_file(file_stream)
8275

8376
def read_sheet_by_name(self, sheet_name):
8477
sheet = self._native_book.get_sheet_by_name(sheet_name)
@@ -110,13 +103,9 @@ def read_sheet(self, native_sheet):
110103
sheet = XLSXSheet(native_sheet, **self._keywords)
111104
return {sheet.name: sheet.to_array()}
112105

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):
118107
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)
120109

121110
def _get_params(self):
122111
self.skip_hidden_sheets = self._keywords.get(

0 commit comments

Comments
 (0)