In Basic, I can change the chart range with the following:
Code: Select all
Sub sector_chart
DialogLibraries.loadLibrary("Standard")
oSheets = ThisComponent.Sheets
sectorSheet = oSheets.getByName("Sheet1")
chartCollection = sectorSheet.getCharts()
Dim newrange as new com.sun.star.table.CellRangeAddress
Dim oAddresses(0) as new com.sun.star.table.CellRangeAddress
' create a cellrange
newrange.sheet= 0
newrange.startcolumn = 0
newrange.endcolumn = 1
newrange.startrow = 0
newrange.endrow = 4
oAddresses(0)=newrange ' add cell range to array
chartCollection(0).setranges(oAddresses()) 'set the cell range for the chart
End Sub
Code: Select all
import uno, unohelper
import sys
ctx = uno.getComponentContext()
oDoc = XSCRIPTCONTEXT.getDocument()
oSheets = oDoc.getSheets()
def Start():
sectorSheet = oSheets.getByName('Sheet1')
try:
# Set chart range
chartCollection = sectorSheet.getCharts()
oAddresses = []
newrange = uno.createUnoStruct('com.sun.star.table.CellRangeAddress')
oAddresses = uno.createUnoStruct('com.sun.star.table.CellRangeAddress')
# create a cellrange
newrange.Sheet= 0
newrange.StartColumn = 0
newrange.EndColumn = 1
newrange.StartRow = 0
newrange.EndRow = 4
oAddresses[0] = newrange
chartCollection[0].setRanges(oAddresses)
except Exception as e:
with open('C:/Users/kiloran/Downloads/pydump.txt','a') as logfile:
logfile.write('Error on line: ' + str(sys.exc_info()[-1].tb_lineno) + " " + str(type(e)) + " " + str(e) + "\n")
g_exportedScripts = Start,
This error occurs on the line: oAddresses[0] = newrange
I've tried all sorts of variations such as oAddresses = newRange but still get errors. Clearly my aged brain is lacking the required Python skills.
Can anyone point me in the right direction?