Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
return map(lambda cell: Range(xlplatform.get_worksheet_name(self.xl_sheet), cell, **self.kwargs),
itertools.product(xrange(self.row1, self.row2 + 1), xrange(self.col1, self.col2 + 1)))
after = Sheet(Sheet.count(wkb=wkb), wkb=wkb)
elif before:
before = Sheet(before, wkb=wkb)
elif after:
after = Sheet(after, wkb=wkb)
if name:
if name.lower() in [i.name.lower() for i in Sheet.all(wkb=wkb)]:
raise Exception('That sheet name is already taken.')
else:
xl_sheet = xlplatform.add_sheet(xl_workbook, before, after)
xlplatform.set_worksheet_name(xl_sheet, name)
return cls(name, wkb)
else:
xl_sheet = xlplatform.add_sheet(xl_workbook, before, after)
return cls(xlplatform.get_worksheet_name(xl_sheet), wkb)
"""
# A single cell is a special case as End(xlToRight) jumps over adjacent empty cells
if xlplatform.get_value_from_index(self.xl_sheet, self.row1, self.col1 + 1) in [None, ""]:
col2 = self.col1
else:
col2 = xlplatform.get_column_index_end_right(self.xl_sheet, self.row1, self.col1)
# Strict: stops at cells that contain a formula but show an empty value
if self.strict:
col2 = self.col1
while xlplatform.get_value_from_index(self.xl_sheet, self.row1, col2 + 1) not in [None, ""]:
col2 += 1
row2 = self.row2
return Range(xlplatform.get_worksheet_name(self.xl_sheet),
(self.row1, self.col1), (row2, col2), **self.kwargs)
def __repr__(self):
return "".format(xlplatform.get_worksheet_name(self.xl_sheet),
xlplatform.get_workbook_name(self.xl_workbook))
def name(self):
"""Get or set the name of the Sheet."""
return xlplatform.get_worksheet_name(self.xl_sheet)
def current_region(self):
"""
This property returns a Range object representing a range bounded by (but not including) any
combination of blank rows and blank columns or the edges of the worksheet. It corresponds to ``Ctrl-*`` on
Windows and ``Shift-Ctrl-Space`` on Mac.
Returns
-------
Range object
"""
address = xlplatform.get_current_region_address(self.xl_sheet, self.row1, self.col1)
return Range(xlplatform.get_worksheet_name(self.xl_sheet), address, **self.kwargs)
def __init__(self, *args, **kwargs):
# Use current Workbook if none provided
self.wkb = kwargs.get('wkb', None)
self.xl_workbook = Workbook.get_xl_workbook(self.wkb)
# Arguments
if len(args) == 1:
self.sheet_name_or_index = xlplatform.get_worksheet_name(xlplatform.get_active_sheet(self.xl_workbook))
self.name_or_index = args[0]
elif len(args) == 2:
if isinstance(args[0], Sheet):
self.sheet_name_or_index = args[0].index
else:
self.sheet_name_or_index = args[0]
self.name_or_index = args[1]
self.xl_shape = xlplatform.get_shape(self)
self.name = xlplatform.get_shape_name(self)
"""
Returns the bottom right cell of the specified range. Read-only.
Returns
-------
Range object
Example
-------
>>> rng = Range('A1').table
>>> rng.last_cell.row, rng.last_cell.column
(4, 5)
.. versionadded:: 0.3.5
"""
return Range(xlplatform.get_worksheet_name(self.xl_sheet),
(self.row2, self.col2), **self.kwargs)
def active(cls, wkb=None):
"""Returns the active Sheet. Use like so: ``Sheet.active()``"""
xl_workbook = Workbook.get_xl_workbook(wkb)
return cls(xlplatform.get_worksheet_name(xlplatform.get_active_sheet(xl_workbook)), wkb)