0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
| | Sub xydiagram_ex1
oDoc = ThisComponent
oCharts = oDoc.getSheets().getByIndex(1).getCharts()
Dim aRange(1) As New com.sun.star.table.CellRangeAddress
Dim aRectangle As New com.sun.star.awt.Rectangle
sChartName = "Chart10"
aRange(0) = make_CellRangeAddress(1, 0, 0, 2, 6)
aRange(1) = make_CellRangeAddress(1, 1, 1, 2, 6)
aRectangle = make_Rectangle(1300, 11300, 7000, 5000)
If NOT oCharts.hasByName(sChartName) Then
' add new chart
oCharts.addNewByName( _
sChartName, aRectangle, aRange, False, False)
'oChartObj = oCharts.getByName(sChartName)
oChart = oCharts.getByName(sChartName).getEmbeddedObject()
'oChart.setDiagram( _
' oChart.createInstance("com.sun.star.chart.XYDiagram"))
oDiagram = oChart.getFirstDiagram()
' change diagram type
oChartTypeManager = oChart.getChartTypeManager()
oChartTypeTemplate = oChartTypeManager.createInstance( _
"com.sun.star.chart2.template.ScatterLineSymbol")
oChartTypeTemplate.changeDiagram(oDiagram)
' get coordinate system
oCooSyss = oDiagram.getCoordinateSystems()
If UBound(oCooSyss) < 0 Then Exit Sub
oCooSys = oCooSyss(0)
' get chart type
oChartTypes = oCooSys.getChartTypes()
If UBound(oChartTypes) < 0 Then Exit Sub
oChartType = oChartTypes(0)
oDataProvider = oChart.getDataProvider()
oColorScheme = oDiagram.getDefaultColorScheme()
' for creation of representation of dataranges
oSheetCellRanges = oDoc.createInstance( _
"com.sun.star.sheet.SheetCellRanges")
' 以下系列作成
' create range representations
sRange1_X = GetRangeAddressAsString(oSheetCellRanges, _
1, 0, 0, 2, 6 )
sRange1_Y = GetRangeAddressAsString(oSheetCellRanges, _
1, 1, 1, 2, 6 )
sRange1_Label = GetRangeAddressAsString(oSheetCellRanges, _
1, 0, 0, 0, 0 )
sRange2_X = GetRangeAddressAsString(oSheetCellRanges, _
1, 3, 3, 2, 6 )
sRange2_Y = GetRangeAddressAsString(oSheetCellRanges, _
1, 4, 4, 2, 6 )
sRange2_Label = GetRangeAddressAsString(oSheetCellRanges, _
1, 3, 3, 0, 0 )
' creat series
oSeries1 = CreateDataSeries_XYDiagram( _
oDataProvider, sRange1_X, sRange1_Y, sRange1_Label )
oSeries2 = CreateDataSeries_XYDiagram( _
oDataProvider, sRange2_X, sRange2_Y, sRange2_Label )
' set propreties
' line colors taken from DefaultColorScheme
oSeries1.Color = oColorScheme.getColorByIndex(0)
oSeries2.Color = oColorScheme.getColorByIndex(1)
' symbol description
aSymbol = CreateUnoStruct("com.sun.star.chart2.Symbol")
aSymbol.Style = com.sun.star.chart2.SymbolStyle.STANDARD
aSymbol.Size = make_Size(250, 250)
oSeries1.Symbol = aSymbol
oSeries2.Symbol = aSymbol
oNewDataSeriesList = Array(oSeries1, oSeries2)
' update with new []DataSeries
oChartType.setDataSeries(oNewDataSeriesList)
End If
End Sub
|