簡體   English   中英

如何使用C#在Excel電子表格中重新放置X軸標簽

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

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