Установка минимального масштаба диаграммы Excel с помощью C # - PullRequest
1 голос
/ 08 августа 2011

Я не могу понять, как установить минимальный масштаб диаграммы Excel с помощью C #.

Оси для диаграммы загружены значениями из столбцов «A», которые являются значениями hr: min {«08:32», «08:33», ...}.

Я хочу, чтобы метки моей оси начинались с "09:00", и я решил, что установка минимальной шкалы - единственный способ сделать это.

Xaxis.MinimumScale, похоже, хочет получить двойное значение, но я хочу сказать, чтобы оно начиналось в 09:00. Моя попытка приведена ниже, но она не удалась при попытке установить строку в двойное значение.

Спасибо

        Excel.Workbook oWB = (Excel.Workbook)oWS.Parent;
        Excel.Series oSeries;
        int length = numRows + 2;
        string colname;
        Excel.ChartObjects xlCharts;
        Excel.ChartObject myChart;
        Excel.Chart chartPage;
        Excel.SeriesCollection oSeriesCollection;

            ...

            xlCharts = (Excel.ChartObjects)oWS.ChartObjects(Type.Missing);
            myChart = (Excel.ChartObject)xlCharts.Add(10, 80, 300, 250);
            chartPage = myChart.Chart;
            oSeriesCollection = (Excel.SeriesCollection)chartPage.SeriesCollection();

            oSeries = oSeriesCollection.NewSeries();
            oSeries.Name = "Actual";
            oSeries.XValues = oWS.Range["A2:A" + length];
            oSeries.Values = oWS.Range["A2","A"+length];

            //Set the interval to 1 hour
            Excel.Axis Xaxis;
              //format the x-axis
            Xaxis = (Excel.Axis)chartPage.Axes(Excel.XlAxisType.xlCategory,
                          Excel.XlAxisGroup.xlPrimary);
            Xaxis.TickLabelSpacing = 60;
            Xaxis.TickLabels.Offset = 130;
            Xaxis.HasTitle = true;
            Xaxis.AxisTitle.Text = "Time of day";
            Xaxis.TickMarkSpacing = 60;
            Xaxis.MinorTickMark = Excel.XlTickMark.xlTickMarkNone;

            Excel.Range rg =(Excel.Range)oWS.Cells[28,1];
            object d = rg.Value2;

            Xaxis.MinimumScale = d;

1 Ответ

1 голос
/ 11 августа 2011

Это может сработать, если вы преобразуете время (9:00) в дробную (9/24). Excel 2003 раньше принимал параметры масштаба оси в формате времени и даты, но 2007 принимает этот формат только в ограниченных случаях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...