Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
address2 = self.xl.rows[row2].columns[col2].get_address()
elif isinstance(arg2, Range):
row2 = max(arg1.row + arg1.shape[0] - 1, arg2.row + arg2.shape[0] - 1)
col2 = max(arg1.column + arg1.shape[1] - 1, arg2.column + arg2.shape[1] - 1)
address2 = self.xl.rows[row2].columns[col2].get_address()
elif isinstance(arg2, string_types):
address2 = arg2
elif arg2 is None:
if isinstance(arg1, string_types) and len(arg1.split(':')) == 2:
address2 = arg1.split(':')[1]
else:
return Range(self, "{0}".format(address1))
else:
raise ValueError("Invalid parameters")
return Range(self, "{0}:{1}".format(address1, address2))
def range(self, arg1, arg2=None):
if isinstance(arg1, tuple):
if len(arg1) == 2:
if 0 in arg1:
raise IndexError("Attempted to access 0-based Range. xlwings/Excel Ranges are 1-based.")
row1 = arg1[0]
col1 = arg1[1]
address1 = self.xl.rows[row1].columns[col1].get_address()
elif len(arg1) == 4:
return Range(self, arg1)
else:
raise ValueError("Invalid parameters")
elif isinstance(arg1, Range):
row1 = min(arg1.row, arg2.row)
col1 = min(arg1.column, arg2.column)
address1 = self.xl.rows[row1].columns[col1].get_address()
elif isinstance(arg1, string_types):
address1 = arg1.split(':')[0]
else:
raise ValueError("Invalid parameters")
if isinstance(arg2, tuple):
if 0 in arg2:
raise IndexError("Attempted to access 0-based Range. xlwings/Excel Ranges are 1-based.")
row2 = arg2[0]
col2 = arg2[1]
if 0 in arg2:
raise IndexError("Attempted to access 0-based Range. xlwings/Excel Ranges are 1-based.")
row2 = arg2[0]
col2 = arg2[1]
address2 = self.xl.rows[row2].columns[col2].get_address()
elif isinstance(arg2, Range):
row2 = max(arg1.row + arg1.shape[0] - 1, arg2.row + arg2.shape[0] - 1)
col2 = max(arg1.column + arg1.shape[1] - 1, arg2.column + arg2.shape[1] - 1)
address2 = self.xl.rows[row2].columns[col2].get_address()
elif isinstance(arg2, string_types):
address2 = arg2
elif arg2 is None:
if isinstance(arg1, string_types) and len(arg1.split(':')) == 2:
address2 = arg1.split(':')[1]
else:
return Range(self, "{0}".format(address1))
else:
raise ValueError("Invalid parameters")
return Range(self, "{0}:{1}".format(address1, address2))
elif isinstance(arg1, Range):
row1 = min(arg1.row, arg2.row)
col1 = min(arg1.column, arg2.column)
address1 = self.xl.rows[row1].columns[col1].get_address()
elif isinstance(arg1, string_types):
address1 = arg1.split(':')[0]
else:
raise ValueError("Invalid parameters")
if isinstance(arg2, tuple):
if 0 in arg2:
raise IndexError("Attempted to access 0-based Range. xlwings/Excel Ranges are 1-based.")
row2 = arg2[0]
col2 = arg2[1]
address2 = self.xl.rows[row2].columns[col2].get_address()
elif isinstance(arg2, Range):
row2 = max(arg1.row + arg1.shape[0] - 1, arg2.row + arg2.shape[0] - 1)
col2 = max(arg1.column + arg1.shape[1] - 1, arg2.column + arg2.shape[1] - 1)
address2 = self.xl.rows[row2].columns[col2].get_address()
elif isinstance(arg2, string_types):
address2 = arg2
elif arg2 is None:
if isinstance(arg1, string_types) and len(arg1.split(':')) == 2:
address2 = arg1.split(':')[1]
else:
return Range(self, "{0}".format(address1))
else:
raise ValueError("Invalid parameters")
return Range(self, "{0}:{1}".format(address1, address2))
def selection(self):
sheet = self.books.active.sheets.active
try:
# fails if e.g. chart is selected
return Range(sheet, self.xl.selection.get_address())
except CommandError:
return None
def used_range(self):
return Range(self, self.xl.used_range.get_address())
def end(self, direction):
direction = directions_s2k.get(direction, direction)
return Range(self.sheet, self.xl.get_end(direction=direction).get_address())
def __call__(self, arg1, arg2=None):
if arg2 is None:
col = (arg1 - 1) % self.shape[1]
row = int((arg1 - 1 - col) / self.shape[1])
return self(1 + row, 1 + col)
else:
return Range(self.sheet,
self.sheet.xl.rows[self.row + arg1 - 1].columns[self.column + arg2 - 1].get_address())
def current_region(self):
return Range(self.sheet, self.xl.current_region.get_address())