如何提供自定义的角度使用C#在Excel中标注 [英] How to provide the custom angle to label in excel using C#
本文介绍了如何提供自定义的角度使用C#在Excel中标注的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
欲提供custome角度到我在x轴标签喜欢-35度。即我想格式化在Excel ==>格式轴==>对齐==>自定义角度
newWorksheet.Select( Type.Missing);
Excel.Range chartRange;
对象misValue = System.Reflection.Missing.Value;
Excel.ChartObjects xlCharts =(Excel.ChartObjects)newWorksheet.ChartObjects(Type.Missing);
Excel.ChartObject myChart =(Excel.ChartObject)xlCharts.Add(10,80,300,250);
Excel.Chart chartPage = myChart.Chart;
chartRange = newWorksheet.get_Range(CELL1,CELL2);
chartPage.SetSourceData(chartRange,Excel.XlRowCol.xlColumns);
chartPage.ChartType = Excel.XlChartType.xlColumnClustered;
变种标签=新的List<串GT;();
字符串日期=的String.Empty;
的foreach(KeyValuePair<字符串列表< TestDetails>> KVP在writetocsv)
{
日期= kvp.Key.Substring(0,(kvp.Key.Length - kvp.Key。的IndexOf('_'))+ 1);
labels.Add(日期);
}
变种系列=(Excel.Series)chartPage.SeriesCollection(1);
series.XValues = labels.ToArray();
//series.HasDataLabels = TRUE;
Excel.Axis valueAxis =(Excel.Axis)chartPage.Axes(Excel.XlAxisType.xlValue,Microsoft.Office.Interop.Excel.XlAxisGroup.xlPrimary);
chartPage.Location(Microsoft.Office.Interop.Excel.XlChartLocation.xlLocationAsNewSheetChart_+ SHEETNAME);
解决方案
试试这个(久经考验)
Excel.Range chartRange;
Excel.ChartObjects xlCharts =(Excel.ChartObjects)xlWorkSheet.ChartObjects(Type.Missing);
Excel.ChartObject myChart =(Excel.ChartObject)xlCharts.Add(10,80,300,250);
Excel.Chart chartPage = myChart.Chart;
chartRange = xlWorkSheet.get_Range(A1,D5);
chartPage.SetSourceData(chartRange,misValue);
chartPage.ChartType = Excel.XlChartType.xlColumnClustered;
// ~~>从这里,这是您要
chartPage.ApplyLayout(6 Type.Missing)的一部分;
chartPage.Axes(Excel.XlAxisType.xlValue).AxisTitle.Select();
chartPage.Axes(Excel.XlAxisType.xlValue).AxisTitle.Orientation = Excel.XlOrientation.xlHorizontal;
// ~~> 35度角
的for(int i = 1; I< = 35;我++)
{
chartPage.Axes(Excel.XlAxisType.xlValue).AxisTitle.Orientation = -i;
}
快照
后续
嗨亚洲时报Siddharth,Actullay我想提供的角度,以起租1,TERM2 - User123 10分钟前
块引用>
试试这个X轴刻度标记
Excel.ChartObjects xlCharts =(Excel.ChartObjects)xlWorkSheet.ChartObjects(Type.Missing);
Excel.ChartObject myChart =(Excel.ChartObject)xlCharts.Add(10,80,300,250);
Excel.Chart chartPage = myChart.Chart;
chartRange = xlWorkSheet.get_Range(A1,D5);
chartPage.SetSourceData(chartRange,misValue);
chartPage.ChartType = Excel.XlChartType.xlColumnClustered;
chartPage.ApplyLayout(6,Type.Missing);
chartPage.Axes(Excel.XlAxisType.xlCategory)。选择();
chartPage.Axes(Excel.XlAxisType.xlCategory).TickLabels.Orientation = 35;
快照
I want to provide the custome angle to my labels on the x-axis to like -35 degrees. i.e. i want to format the in Excel ==> Format Axis ==>Alignment ==>Custom angle
newWorksheet.Select(Type.Missing); Excel.Range chartRange; object misValue = System.Reflection.Missing.Value; Excel.ChartObjects xlCharts = (Excel.ChartObjects)newWorksheet.ChartObjects(Type.Missing); Excel.ChartObject myChart = (Excel.ChartObject)xlCharts.Add(10, 80, 300, 250); Excel.Chart chartPage = myChart.Chart; chartRange = newWorksheet.get_Range(cell1, cell2); chartPage.SetSourceData(chartRange, Excel.XlRowCol.xlColumns); chartPage.ChartType = Excel.XlChartType.xlColumnClustered; var labels = new List<string>(); string date = string.Empty; foreach (KeyValuePair<string, List<TestDetails>> kvp in writetocsv) { date = kvp.Key.Substring(0, (kvp.Key.Length - kvp.Key.IndexOf('_')) + 1); labels.Add(date); } var series = (Excel.Series)chartPage.SeriesCollection(1); series.XValues = labels.ToArray(); //series.HasDataLabels = true; Excel.Axis valueAxis = (Excel.Axis)chartPage.Axes(Excel.XlAxisType.xlValue, Microsoft.Office.Interop.Excel.XlAxisGroup.xlPrimary); chartPage.Location(Microsoft.Office.Interop.Excel.XlChartLocation.xlLocationAsNewSheet, "Chart_" + sheetName);
解决方案Try this (TRIED AND TESTED)
Excel.Range chartRange; Excel.ChartObjects xlCharts = (Excel.ChartObjects)xlWorkSheet.ChartObjects(Type.Missing); Excel.ChartObject myChart = (Excel.ChartObject)xlCharts.Add(10, 80, 300, 250); Excel.Chart chartPage = myChart.Chart; chartRange = xlWorkSheet.get_Range("A1", "d5"); chartPage.SetSourceData(chartRange, misValue); chartPage.ChartType = Excel.XlChartType.xlColumnClustered; //~~> From here this is the part which you want chartPage.ApplyLayout(6, Type.Missing); chartPage.Axes(Excel.XlAxisType.xlValue).AxisTitle.Select(); chartPage.Axes(Excel.XlAxisType.xlValue).AxisTitle.Orientation = Excel.XlOrientation.xlHorizontal; //~~> 35 Deg angle for (int i = 1; i <= 35; i++) { chartPage.Axes(Excel.XlAxisType.xlValue).AxisTitle.Orientation = -i; }
SNAPSHOT
FOLLOWUP
Hi Siddharth, Actullay i want to provide the Angle to "Term1", "Term2" – User123 10 mins ago
Try this for X Axis Tick Labels
Excel.ChartObjects xlCharts = (Excel.ChartObjects)xlWorkSheet.ChartObjects(Type.Missing); Excel.ChartObject myChart = (Excel.ChartObject)xlCharts.Add(10, 80, 300, 250); Excel.Chart chartPage = myChart.Chart; chartRange = xlWorkSheet.get_Range("A1", "d5"); chartPage.SetSourceData(chartRange, misValue); chartPage.ChartType = Excel.XlChartType.xlColumnClustered; chartPage.ApplyLayout(6, Type.Missing); chartPage.Axes(Excel.XlAxisType.xlCategory).Select(); chartPage.Axes(Excel.XlAxisType.xlCategory).TickLabels.Orientation = 35;
SNAPSHOT
这篇关于如何提供自定义的角度使用C#在Excel中标注的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文