我正在尝试通过vb.net代码在excel电子表格中绘制图表。 我想从A列(X轴)和D列(Y轴)绘制散点图。到目前为止,在一些在线帮助下,我已经编写了以下代码:
Dim xlApp As Excel.Application
Dim xlWorkBook As Excel.Workbook
Dim xlWorkSheet As Excel.Worksheet
xlApp = New Excel.Application
xlWorkBook = xlApp.Workbooks.Open("C:\excel_file.xlsx")
xlApp.Visible = True
xlWorkSheet = xlWorkBook.Sheets("Foglio4")
With xlWorkSheet
.Shapes.AddChart.Select()
With xlApp.ActiveChart
.ApplyCustomType(Excel.XlChartType.xlXYScatterSmoothNoMarkers)
xlApp.ActiveChart.SeriesCollection(1).Name = "X-Y"
xlApp.ActiveChart.SeriesCollection(1).XValues = "='Foglio4'!$A$2:$A$1446"
xlApp.ActiveChart.SeriesCollection(1).Values = "='Foglio4'!$D$2:$D$1446"
End with
End with
但是我得到了一个图表,其中包含我想要的系列以及其他四个系列,它们由X轴的A列和Y轴的所有其他列组成,因为我有五列。
为什么绘制所有这些系列?有想法吗?
答案 0 :(得分:0)
由于蒂姆·威廉姆斯(Tim Williams)的宝贵评论,我将这一部分添加到了代码中:
[...]
xlApp.ActiveChart.SeriesCollection(1).Name = "X-Y"
xlApp.ActiveChart.SeriesCollection(1).XValues = "='Foglio4'!$A$2:$A$1446"
xlApp.ActiveChart.SeriesCollection(1).Values = "='Foglio4'!$D$2:$D$1446"
For n = .SeriesCollection.Count To 2 Step -1
.SeriesCollection(n).Delete
Next n
[...]
这将删除所有不需要的系列,仅保留一个想要的系列,即#1。