Jeg har tidligere beskrevet hvordan de importerede data kan vises i et diagram. Det kan du læse om her: https://libreofficedk.blogspot.dk/2016/10/indlse-en-fil-linje-for-linje-makro.html
Men det kunne være spændende hvis vi kan oprette diagrammet "on the fly". Formålet er naturligvis at vi senere vil kombinere det med vores viden fra denne artikel https://libreofficedk.blogspot.dk/2016/10/vi-vil-gerne-et-skridt-videre-med-det.html hvor vi fandt ud af hvor mange rækker der er i regnearket.
Men først skal vi finde ud af hvordan vi opretter et diagram. Makroen er herunder, men jeg vil ikke gå i detaljer.
Læs gerne kommentarerne i koden:
REM ***** BASIC *****
Sub CreateChart
sName = "Statistik-diagram"
'Dataområdet (som vi senere laver om):
sDataRng = "A1:B101"
oSheets = thisComponent.Sheets
oSheet = oSheets.getByName("Statistik")
oAddress = oSheet.getCellRangeByName( sDataRng ).getRangeAddress()
oCharts = oSheet.getCharts()
If NOT oCharts.hasByName(sName) Then
oRect = createObject("com.sun.star.awt.Rectangle")
'Placering:
oRect.X = 10000 '1/100mm
oRect.Y = 1000
'Størrelse:
oRect.width = 20000
oRect.Height= 10000
' True betyder kolonne overskrifter.
' False betyder ingen række-overskrifter.
oCharts.addNewByName(sName, oRect, Array(oAddress), True, False)
End If
oChart = oCharts.getByName( sName )
oChart.setRanges(Array(oAddress))
oChart.HasRowHeaders=True
oChart.HasColumnHeaders=True
oChartDoc = oChart.getEmbeddedObject()
'Her danner vi titlen:
oTitle = oChartDoc.getTitle()
oTitle.String = "Nyhedsbrevet"
'Opret diagrammet:
oDiagram = oChartDoc.createInstance( "com.sun.star.chart.LineDiagram" ) 'Linjediagram
oChartDoc.setDiagram( oDiagram )
oDiagram = oChartDoc.getDiagram()
oDiagram.DataRowSource = com.sun.star.chart.ChartDataRowSource.COLUMNS 'Data i kolonner
End Sub