[英]How to reposition the X Axis label in an excel spread sheet using C#
我已經在MS論壇上發布了這個問題,但是唯一的回答(創建宏並從VBA代碼推斷)沒有幫助。 我得到的唯一模糊的提示是使用TickLabelPosition-顯然,這僅在您使用VB且我使用C#時才有用
我正在嘗試做的事情應該是世界上最簡單和常見的事情:我只想將X軸標簽移到圖表的底部。 那有多難? 好吧,我承認我對C#或Excel互操作並沒有過多的經驗,但是目前看來這是不可能的。
我正在編寫一個C#程序(VS2010)從導入的數據創建Excel電子表格。 我實際上可以使用所有正確的數據和范圍來創建電子表格。 我無法弄清楚如何移動X軸的標簽。 我一定缺少一個簡單的東西,但是它總是出現在零線處,並且由於我的值變為負數,這意味着它在圖表的中間。 現在,如果使用模板,我可以將其放到想要的位置,但是我不想這樣做。
這是一個代碼片段:
const string topLeft = "A9";
const string bottomRight = "B18";
const string graphTitle = "Graph Title";
const string xAxis = "Time";
const string yAxis = "Value";
string chartTabName;
var range = workSheet.get_Range(topLeft, bottomRight);
// Add chart.
var charts = workSheet.ChartObjects() as
Microsoft.Office.Interop.Excel.ChartObjects;
var chartObject = charts.Add(20, 20, 750, 500) as
Microsoft.Office.Interop.Excel.ChartObject;
var chart = chartObject.Chart;
// Set chart range.
chart.SetSourceData(range);
chart.ChartType = Microsoft.Office.Interop.Excel.XlChartType.xlXYScatterSmooth;
// chart.ApplyChartTemplate(@“ Chart1.crtx”); (<-模板)
chart.ChartWizard(Source: range,
Title: graphTitle,
CategoryTitle: xAxis,
ValueTitle: yAxis);
由於x軸變為負數,因此使用此選項將“水平值”軸置於圖表的中間。 現在,我可以手動移動此圖,也可以使用圖表模板(如我所做的那樣)移動,但這並不是最好的計划。 最好的計划是以編程方式移動它,但我找不到解決方法。 我可以找到一種方法來移動“傳奇”(chart.Legend),但不能移動“值”。
謝謝你的幫助。
盡管完全沒有文檔說明,但此命令將起作用:chart.Axes(2).CrossesAt = chart.Axes(2).MinimumScale;
如果要將X軸標簽移動到“低”位置,以下是VBA中的代碼,可能會有所幫助:
chart.Axes(xlCategory).TickLabelPosition = xlLow
常量定義為:
Const xlCategory = 1
Const xlLow = -4134 (&HFFFFEFDA)
如果要移動整個X軸(標簽和刻度),請在此處使用該代碼的VBA代碼:
chart.Axes(xlValue).CrossesAt = -15
其中-15是Y范圍內的最小值。 注意,我們實際上是在這里修改Y軸:
Const xlValue = 2
我意識到您要求使用C#代碼,但這應該很容易轉換為C#(而且我沒有方便的Visual Studio項目來測試Excel Interop)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.