如果用户之前已设置属于以下图表组之一的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);