在Excel中从C#中的列向标记中添加标签

我有一个3列的Excel表。 列B和C是我的数据,列A包含每个点的标签。

我不得不用这个来得到我的图表

series1Point.XValues = xlWorkSheetDimfract.get_Range("B1:B" + (ip - 1)); series1Point.Values = xlWorkSheetDimfract.get_Range("C1:C" + (ip - 1)); 

但列A的标签甚至没有显示:

 series1Point.ApplyDataLabels(); 

如何根据A列中写入的内容将标签添加到我的统计图上的每个点,然后将图表变成jpeg?

Thnks

 Excels.SeriesCollection seriesCollectionPoint = chartPageDimfract.SeriesCollection(); Excels.Series series1Point = seriesCollectionPoint.NewSeries(); series1Point.XValues = xlWorkSheetDimfract.get_Range("A1:B" + (ip - 1)); series1Point.Values = xlWorkSheetDimfract.get_Range("C1:C" + (ip - 1)); series1Point.ApplyDataLabels(Microsoft.Office.Interop.Excel.XlDataLabelsType.xlDataLabelsShowLabel); chartPageDimfract.ChartType = Excels.XlChartType.xlXYScatter;// xlLineMarkers; series1Point.MarkerStyle = Excels.XlMarkerStyle.xlMarkerStyleDot; series1Point.MarkerSize = 4; chartPageDimfract.Export(xlsfic + "temp/dimmensionFractale.jpg", "JPG", misValue); xlWorkBookDimfract.SaveAs(xlsfic + "temp/excel_chart_dimmensionFractale.xls", Excels.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excels.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue); xlWorkBookDimfract.Close(true, misValue, misValue); 

'ip'是填充我的Excel表格后使用的整数。 它是最后一个项目的索引。

正如我在评论中提到的,图表types的XY散点图本身并不支持您正在尝试做的那种标签。 它允许您使用X,Y或X和Y值进行标注,但不能使用某些分类值。

创build一个包含您想要应用的标签的数组。 该数组应该是相同的顺序,并包含尽可能多的标签,因为该系列有点。

那么,这是我在VBA中使用的方法:

  Sub AddXYScatterLabels() Dim ptLabels as Variant '<~~ this is the array that I will populate with the labels to use from Column A. Dim i as Long: i=1 Dim srs as Series '<~~ This is the series that you will assign the labels to.' Dim pt as Point '<~~ use this to iterate over srs.Points collection.' ptLabels = Range("A1:A10") '<~~ Modify as needed for your Range object.' Set srs = ActiveSheet.ChartObjects(1).SeriesCollection(1) For each pt in srs.Points pt.DataLabel.Text = ptLabels(i,1) i = i+1 Next End Sub 

然后,您应该可以使用Chart.Export方法来创build图表的JPG。

 ActiveChart.Export "c:\chart.jpg"