[英]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.