Skip to content

Commit

Permalink
fix #13, open the book in read_only mode
Browse files Browse the repository at this point in the history
  • Loading branch information
chfw committed Dec 20, 2016
1 parent 2f3df21 commit 375d179
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 21 deletions.
3 changes: 2 additions & 1 deletion CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ Updated
********************************************************************************

#. Code refactoring with pyexcel-io v 0.3.0

#. `#13 <https://github.com/pyexcel/pyexcel-xlsx/issues/13>`_, turn read_only
flag on openpyxl.

0.2.3 - 05.11.2016
--------------------------------------------------------------------------------
Expand Down
29 changes: 9 additions & 20 deletions pyexcel_xlsx/xlsx.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,25 +43,18 @@ def name(self):
"""sheet name"""
return self._native_sheet.title

def number_of_rows(self):
def _iterate_rows(self):
"""
Number of rows in the xls sheet
"""
return self._native_sheet.max_row
return self._native_sheet.rows

def number_of_columns(self):
def _iterate_columns(self, row):
"""
Number of columns in the xls sheet
"""
return self._native_sheet.max_column

def _cell_value(self, row, column):
"""
Random access to the xls cells
"""
actual_row = row + 1
cell_location = "%s%d" % (get_columns(column), actual_row)
return self._native_sheet[cell_location].value
for cell in row:
yield cell.value


class XLSXBook(BookReader):
Expand All @@ -73,12 +66,12 @@ class XLSXBook(BookReader):
def open(self, file_name, **keywords):
BookReader.open(self, file_name, **keywords)
self._get_params()
self._load_from_file()
self._load_the_excel_file(file_name)

def open_stream(self, file_stream, **keywords):
BookReader.open_stream(self, file_stream, **keywords)
self._get_params()
self._load_from_memory()
self._load_the_excel_file(file_stream)

def read_sheet_by_name(self, sheet_name):
sheet = self._native_book.get_sheet_by_name(sheet_name)
Expand Down Expand Up @@ -110,13 +103,9 @@ def read_sheet(self, native_sheet):
sheet = XLSXSheet(native_sheet, **self._keywords)
return {sheet.name: sheet.to_array()}

def _load_from_memory(self):
self._native_book = openpyxl.load_workbook(
filename=self._file_stream, data_only=True)

def _load_from_file(self):
def _load_the_excel_file(self, file_alike_object):
self._native_book = openpyxl.load_workbook(
filename=self._file_name, data_only=True)
filename=file_alike_object, data_only=True, read_only=True)

def _get_params(self):
self.skip_hidden_sheets = self._keywords.get(
Expand Down

0 comments on commit 375d179

Please sign in to comment.