Excel.Chart.Export不起作用

我有一个工作表上的多个图表excel文件。 我从excel中获取图表并将其保存为图片。

我的代码:

workSheet = workBook.Sheets[1] as Excel._Worksheet; Excel.ChartObjects chartObjects =(Excel.ChartObjects)workSheet.ChartObjects(Type.Missing); int chartCount = chartObjects.Count; for (int j = 1; j <= chartCount; j++) { Excel.ChartObject chart = (Excel.ChartObject)chartObjects.Item(j); path = Path.Combine(Application.StartupPath, @"Img\" + chart.Chart.Name + ".bmp"); chart.Chart.Export(path, "BMP", true); } 

但只有空白的图片被输出。

请帮帮我

在调出.Export时,导出屏幕上至less部分不可见的图表会导致出现空白图像。

尝试添加一行代码来激活要导出的图表,然后再导出它(我遇到了同样的问题,这对我有用):

 Excel.ChartObject chart = (Excel.ChartObject)chartObjects.Item(j); path = Path.Combine(Application.StartupPath, @"Img\" + chart.Chart.Name + ".bmp"); chart.Activate(); //New line chart.Chart.Export(path, "BMP", true); 

我遇到了同样的问题,并试图。激活的伎俩,但没有帮助。 基于图表需要变得至less部分可见的评论,我在.Export行之前尝试了一个简单的延迟循环:

 For i = 1 to N DoEvents Next i 

这解决了这个问题。 通过一些实验,我发现N> = 3,但是如果N = 1或2,或者如果我把循环拿出来,代码就会返回到输出空白的图片。 我不明白,但认为我会传递我的观察。