正确使用get_range来制作图表

本文关键字:range get | 更新日期: 2023-09-27 18:26:13

我正在使用以下代码尝试收费,但它正在引发com异常。我正在试着做一张图表。我的代码有明显的错误吗?错误出现在get_range行上。

      static void makechart(int counter, int startcount, Worksheet sourcesheet)
    {
        Range chartrange;
        string rangestr = "G" + startcount.ToString() + ":G" + counter.ToString() + ",I" + startcount.ToString() + ":I" + counter.ToString();
        ChartObjects xlcharts =     (ChartObjects)sourcesheet.ChartObjects(Type.Missing);
        ChartObject myChart = (ChartObject)xlcharts.Add(10, 80, 300, 250);
        Chart chartPage = myChart.Chart;
        chartrange = objsheet.get_Range(rangestr,Type.Missing);
        //chartrange = sourcesheet.get_Range("G1", "B" + counter + 1);
        chartPage.SetSourceData(chartrange, Type.Missing);
        chartPage.ChartType = XlChartType.xlBarClustered;

    }

正确使用get_range来制作图表

这应该有效:

替换:

string rangestr = "G" + startcount.ToString() + ":G" + counter.ToString() + ",I" + startcount.ToString() + ":I" + counter.ToString();

带有:

string range1 = "G" + startcount.ToString() + ":G" + counter.ToString();
string range2 = "I" + startcount.ToString() + ":I" + counter.ToString();

chartrange = objsheet.get_Range(rangestr,Type.Missing);

带有:

chartrange = objsheet.get_Range(range1,range2);