2013-02-08 13 views
5

ile oluşturulmuştur. Bu yüzden bunu bir süredir anlamaya çalışıyorum ama hiçbir yere ulaşamadım. C# kullanarak bir Excel elektronik tablo oluşturuyorum. E-tablomda bir grafik var. Ben grafik ile her şeyi yapabiliyorum EXCEPT X-Axis etiketlerini değiştirmek. Bulduğum her şeyi denedim ama hiçbir şey işe yaramıyor.Excel Grafikte Eksen Etiketlerini Değiştirme C#

Excel.ChartObjects xlChart = (Excel.ChartObjects)xlWorkSheet.ChartObjects(Type.Missing); 
Excel.ChartObject myChart = (Excel.ChartObject)xlChart.Add(1420, 660, 320, 180); 
Excel.Chart chartPage = myChart.Chart; 
chartPage.ChartType = Excel.XlChartType.xlXYScatterLines; 
chartPage.HasTitle = true; 
chartPage.ChartTitle.Text = "Title Text"; 
chartPage.HasLegend = false; 

var yAxis = (Excel.Axis)chartPage.Axes(Excel.XlAxisType.xlValue,Excel.XlAxisGroup.xlPrimary); 
yAxis.HasTitle = true; 
yAxis.AxisTitle.Text = "Y-Axis Title text"; 
yAxis.MaximumScale = 20; 
yAxis.AxisTitle.Orientation = Excel.XlOrientation.xlUpward; 

Excel.Range Data_Range = xlWorkSheet.get_Range("A10", "C10");//Data to be plotted in chart 
Excel.Range XVal_Range = xlWorkSheet.get_Range("A1", "C1");//Catagory Names I want on X-Axis as range 
var x_labels = new List<string>() { "Val1", "Val2", "Val3" }; //Catagory Names I want on X-Axis as text array 

Excel.SeriesCollection oSeriesCollection = (Excel.SeriesCollection)myChart.Chart.SeriesCollection(misValue); 
Excel.Series Data = oSeriesCollection.NewSeries(); 
Data.Values = Data_Range; 
Data.Name = "Plot Data"; 

Excel.Axis valueAxis = (Excel.Axis)chartPage.Axes(Excel.XlAxisType.xlCategory, Excel.XlAxisGroup.xlPrimary); 
/* 
Methods I've tried with no luck: 
1) Data.XValues = XVal_Range; 
2) Data.XValues = x_labels.ToArray(); 
3) valueAxis.CategoryNames = x_labels.ToArray(); 
4) valueAxis.CategoryNames = XVal_Range; 
*/ 

sadece varsayılan numara değerlerle görüntüler her seferinde ... Ben bir kayıp i sorunu anladım yani ... Sen X-Ekseni değiştiremezsiniz

cevap

9

iyiyim dağılım grafiği. Grafik türünü Excel.XlChartType.xlLineMarkers; olarak değiştirdim ve iyi çalıştı.

Excel.ChartObjects xlChart = (Excel.ChartObjects)xlWorkSheet.ChartObjects(Type.Missing); 
Excel.ChartObject myChart = (Excel.ChartObject)xlChart.Add(1420, 660, 320, 180); 
Excel.Chart chartPage = myChart.Chart; 
chartPage.ChartType = Excel.XlChartType.xlLineMarkers; 
chartPage.HasTitle = true; 
chartPage.ChartTitle.Text = "Title Text"; 
chartPage.HasLegend = false; 

var yAxis = (Excel.Axis)chartPage.Axes(Excel.XlAxisType.xlValue,Excel.XlAxisGroup.xlPrimary); 
yAxis.HasTitle = true; 
yAxis.AxisTitle.Text = "Y-Axis Title text"; 
yAxis.MaximumScale = 20; 
yAxis.AxisTitle.Orientation = Excel.XlOrientation.xlUpward; 

Excel.Range Data_Range = xlWorkSheet.get_Range("A10", "C10");//Data to be plotted in chart 
Excel.Range XVal_Range = xlWorkSheet.get_Range("A1", "C1");//Catagory Names I want on X-Axis as range 

Excel.SeriesCollection oSeriesCollection = (Excel.SeriesCollection)myChart.Chart.SeriesCollection(misValue); 
Excel.Series Data = oSeriesCollection.NewSeries(); 
Data.Values = Data_Range; 
Data.Name = "Plot Data"; 

Excel.Axis xAxis = (Excel.Axis)chartPage.Axes(Excel.XlAxisType.xlCategory, Excel.XlAxisGroup.xlPrimary); 
xAxis.CategoryNames = XVal_Range; 
+0

Benim için çalıştı:

İşte tüm pasajı bu. Lütfen bana ** Yatay Eksen ** değerini nasıl değiştirebilirim? Çünkü şu an sadece 1,2,3,4,5 ... vb. –

İlgili konular