簡體   English   中英

使用C#在Excel中創建X x Y圖表

[英]Creating a X x Y chart in Excel with C#

我正在嘗試用C#在Excel中創建一個圖表。 到目前為止,我所做的是使用我需要繪制的數據填充Excel電子表格。 我的電子表格上的數據如下所示:

T    U
10  10
20  5
30  3,333333333
40  2,5
50  2
60  1,666666667
70  1,428571429
80  1,25
90  1,111111111
100 1
110 0,909090909
120 0,833333333
130 0,769230769
140 0,714285714
150 0,666666667
160 0,625

我有第1行到第40行的數據。我想在Excel中創建一個像這樣的圖表:

在此輸入圖像描述

請注意,在X軸上,我想要從T列放置值(或某些值),在Y軸中放置U列中的值。

我制作了以下代碼來創建圖表:

object misValue = System.Reflection.Missing.Value;

Microsoft.Office.Interop.Excel.Application xla = new Microsoft.Office.Interop.Excel.Application();
Workbook wb = xla.Workbooks.Add(XlSheetType.xlWorksheet);
Worksheet ws = (Worksheet)xla.ActiveSheet;

Microsoft.Office.Interop.Excel.Range chartRange;
Microsoft.Office.Interop.Excel.ChartObjects xlCharts = (Microsoft.Office.Interop.Excel.ChartObjects)ws.ChartObjects(Type.Missing);
Microsoft.Office.Interop.Excel.ChartObject myChart = (Microsoft.Office.Interop.Excel.ChartObject)xlCharts.Add(240, 90, 468, 315);
Microsoft.Office.Interop.Excel.Chart chartPage = myChart.Chart;
chartRange = ws.get_Range("U1", "U40");
chartPage.SetSourceData(chartRange, misValue);
chartPage.ChartType = Microsoft.Office.Interop.Excel.XlChartType.xlLine;

這得到了以下結果:

在此輸入圖像描述

這非常接近我的需要,但我無法設置X軸的值。 有人可以告訴我如何將T1到T40范圍內的值分配給X軸嗎? 如果可能,我如何從圖表中刪除標簽“Série1”?

這已經六個月了,所以我想你已經開始了,但是:

您已經獲得了對圖表( chartPage )的引用,因此設置x軸值並刪除圖例應該很簡單。 你只需要對系列本身的引用。

Excel.Series ser = (Excel.Series)chartPage.SeriesCollection(1);

ser.xValues = ws.Range[ws.cells[row,col],ws.cells[row,col]];
chartPage.hasLegend = false;

這是假設您將Microsoft.Office.Interop.Excel別名如下:

using Excel = Microsoft.Office.Interop.Excel;

你正在研究的系列實際上是第一個。 您也可以以相同的方式設置y值,而不是設置源數據。

ser.Values = ws.Range[etc...];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM