【问题标题】:set x axis units in Excel Chart from Microsoft C#在 Microsoft C# 的 Excel 图表中设置 x 轴单位
【发布时间】:2020-07-17 11:19:03
【问题描述】:

以下 C# 代码会生成一个图表,其中自动设置 x 轴月份和年份,如第一张图片所示。进入 Excel 后,手动更改以下设置:

  1. 图表“格式轴”->“轴选项”->“单位”->“主要”值改为“1”和“年”

生成第二张图片。

  1. 编号类别 -> “日期”、“类型” -> “Mar-12”

生成第三张图片。

如何使用 C# 设置这些设置?

            var chartRange = oSheet.Range[oSheet.Cells[3, 2], oSheet.Cells[3 + rno - 4, 6]];
            var chartContainer = charts.Add(left, top, width, height);
            var lineChart = chartContainer.Chart;

            lineChart.SetSourceData(chartRange);
            lineChart.Legend.Position = Excel.XlLegendPosition.xlLegendPositionTop;

            // barChart.Legend.Clear();    // removing legend

            Excel.Series series = lineChart.SeriesCollection(1) as Excel.Series;
            series.Interior.Color = Color.FromArgb(34, 92, 107);
            series.Border.Weight = 1;
            series.Border.Color = Color.FromKnownColor(KnownColor.Black);

            Excel.Axis axis1 = lineChart.Axes(1);
            axis1.TickLabelPosition = Excel.XlTickLabelPosition.xlTickLabelPositionNextToAxis;
            Excel.TickLabels tickLabels3 = axis1.TickLabels as Excel.TickLabels;
            tickLabels3.NumberFormat = "mm/yy";


            Excel.Axis axis2 = lineChart.Axes(2);
            Excel.TickLabels tickLabels2 = axis2.TickLabels as Excel.TickLabels;
            //tickLabels2.NumberFormat = "0.0%";


            lineChart.ChartType = Microsoft.Office.Interop.Excel.XlChartType.xlLine;
            lineChart.ChartWizard(Source: chartRange, Title: chartTitle, CategoryTitle: categoryTitle, ValueTitle: valueTitle);
            lineChart.ChartColor = 8;

            axis1.AxisTitle.Orientation = Excel.XlOrientation.xlHorizontal;
            axis1.AxisTitle.Font.Size = 8;
            axis2.AxisTitle.Font.Size = 12;

Chart with Excel-generated scaled month/year x axis

Chart with x-axis as desired

Chart as desired

【问题讨论】:

    标签: c# excel


    【解决方案1】:

    我想出了怎么做:

    1. 通过添加“ChartColor”属性设置颜色主题:颜色为excel中“Color”控件中的位置编号:

               lineChart.SetSourceData(chartRange);
               lineChart.Legend.Position = Excel.XlLegendPosition.xlLegendPositionTop;
               lineChart.ChartColor = 8;
      
    2. 数字格式为“tickLabel3.NumberFormat”,单位显示为“axis1.BaseUnit”、“axis1.MajorUnitScale”和“axis1.MajorUnit”属性

               Excel.Axis axis1 = lineChart.Axes(1);
               axis1.TickLabelPosition =   Excel.XlTickLabelPosition.xlTickLabelPositionNextToAxis;
               Excel.TickLabels tickLabels3 = axis1.TickLabels as Excel.TickLabels;
               tickLabels3.NumberFormat = "[$-en-US]mmm-yy;@";
               axis1.BaseUnit = Excel.XlTimeUnit.xlMonths;
               axis1.MajorUnitScale = Excel.XlTimeUnit.xlYears;
               axis1.MajorUnit = 1;
      

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多