ScriptForge - (SF_Calc) First/Last * Row/Column/Cell accept sheets and ranges

The methods
   FirstCell
   FirstColumn
   FirstRow
   LastCell
   LastColumn
   LastRow
   SheetName
accept uniformly either a sheet name or a range name.
They return a single cell as an absolute address (First/LastCell),
a String (SheetName) or a Long.

The range name is to be understood as the extended notation for ranges.

FirstCell/Column/Row accept sheet names. However they will then always return
either the "A1" cell or the value 1.

The LastCell/Column/Row return the real last xxx for ranges, and
the last USED xxx when the argument is a sheet.

The A1Style() method surrounds from now on sheet names
with single quotes only when necessary.

The GetRangeAddress() method has been dropped as redundant with the actual
methods. (Was new in 7.3 => no effect on upward compatibiity)

Change-Id: Iff1ce437ee27dfb8481361f648b3f7a33ae2c4b1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124904
Tested-by: Jean-Pierre Ledure <jp@ledure.be>
Tested-by: Jenkins
Reviewed-by: Jean-Pierre Ledure <jp@ledure.be>
This commit is contained in:
Jean-Pierre Ledure
2021-11-09 13:09:24 +01:00
parent a14b783bbe
commit 754247fe3f
3 changed files with 95 additions and 101 deletions
@@ -1876,17 +1876,26 @@ class SFDocuments:
return windowname,
# Next functions are implemented in Basic as read-only properties with 1 argument
def FirstCell(self, rangename):
return self.GetProperty('FirstCell', rangename)
def FirstColumn(self, rangename):
return self.GetProperty('FirstColumn', rangename)
def FirstRow(self, rangename):
return self.GetProperty('FirstRow', rangename)
def Height(self, rangename):
return self.GetProperty('Height', rangename)
def LastCell(self, sheetname):
return self.GetProperty('LastCell', sheetname)
def LastCell(self, rangename):
return self.GetProperty('LastCell', rangename)
def LastColumn(self, sheetname):
return self.GetProperty('LastColumn', sheetname)
def LastColumn(self, rangename):
return self.GetProperty('LastColumn', rangename)
def LastRow(self, sheetname):
return self.GetProperty('LastRow', sheetname)
def LastRow(self, rangename):
return self.GetProperty('LastRow', rangename)
def Range(self, rangename):
return self.GetProperty('Range', rangename)
@@ -1897,6 +1906,9 @@ class SFDocuments:
def Sheet(self, sheetname):
return self.GetProperty('Sheet', sheetname)
def SheetName(self, rangename):
return self.GetProperty('SheetName', rangename)
def Width(self, rangename):
return self.GetProperty('Width', rangename)
@@ -1974,9 +1986,6 @@ class SFDocuments:
def GetFormula(self, range):
return self.ExecMethod(self.vbMethod + self.flgArrayRet, 'GetFormula', range)
def GetRangeAddress(self, range, addressitem = ''):
return self.ExecMethod(self.vbMethod + self.flgArrayArg, 'GetRangeAddress', range, addressitem)
def GetValue(self, range):
return self.ExecMethod(self.vbMethod + self.flgArrayRet, 'GetValue', range)