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,或者如果我把循环拿出来,代码就会返回到输出空白的图片。 我不明白,但认为我会传递我的观察。