如何更改加载项,工作簿或工作表的默认图表类型(不适用于图表)?

时间:2013-12-23 20:04:39

标签: c# excel charts

如果用户之前已设置属于以下图表组之一的MS Excel默认图表,则Excel加载项会生成错误创建图表:股票图表和曲面图表。最后一个错误是:“指定的维度对当前图表类型无效”

我使用ChartObjects并且无法在没有错误的情况下添加空图表,因此无法设置图表类型。 问题是,如果您尝试在没有正确数据选择的情况下进行创建,Excel会为该图表生成错误。通过将其中一种类型设置为默认值并按Alt + F1来尝试自己。

有人知道如何更改加载项,工作簿或工作表的默认图表类型吗?我知道图表的解决方案(有些信息在这里:C# created Excel graph - Should be ScatterLine but it is Line type on other computers),但是图表甚至无法创建!

现在我建议在主图表制作程序之前进行检查。

            try
            {
                Excel.Shape chart_tmp = xlMYSheet.Shapes.AddChart(Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
                chart_tmp.Delete();
            }
            catch (Exception)
            {
                //throw;
                MessageBox.Show("You can’t create chart properly if you have previously set an MS Excel default chart belonging to one of the following chart groups: Stock charts and Surface charts. Please set any other MS Excel default chart type.",
                                "Change MS Excel default chart type", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                throw new Exception("MS Excel default chart type is need to be changed!");

更新: 在主代码中我使用Excel.ChartObjects。无论如何,它会给图表添加带来错误。 这就是为什么我这么简单的检查。

    // No error
    Excel.Shape chart_tmp = xlSourceSheet.Shapes.AddChart(Excel.XlChartType.xlLine, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
    chart_tmp.Delete();
    // Error in any case if wrong default charts had been set by user
    Excel.ChartObjects xlDestCharts = (Excel.ChartObjects)xlSourceSheet.ChartObjects(Type.Missing);
    Excel.ChartObject MyChart = xlDestCharts.Add(0, 0, 100, 500);

0 个答案:

没有答案