我在尝试通过PowerPoint在PowerPoint中嵌入Excel图表时遇到问题 Interop API使用C#。我需要让它适用于Office2003。
我正在遵循的流程是我从模板创建PowerPoint 使用interop API。然后我为每个图表插入一张新幻灯片 这些幻灯片我添加了Excel.Chart OLE对象。到目前为止一切都很顺利。那我去 进入该工作簿,更改数据,并使用chartWizard更新 第一张表上的图表。最后,我关闭了excel工作簿。
问题是图表在生成的图片中没有正确显示 PowerPoint幻灯片。该图表适用于已更改的数据,但全部都是如此 图表本身的操作,例如更改标题,数据范围, 图表类型等未显示。
变得陌生。在PowerPoint中我点击(错误渲染) 生成图表并选择打开或编辑,图表将立即刷新 正确的设置。当我关闭图表并返回powerpoint时 图表正确呈现。
我花了几个小时来弄清楚发生了什么,但不知何故 似乎没什么用。我试着打电话:
有人能给我一些暗示需要做什么吗?我会发布我的代码 插入下面的图表。
//Add the Workbook
Excel.Workbook workbook =
(Excel.Workbook)slide.Shapes.AddOLEObject(basePoint.X, basePoint.Y,
chartSize.Width, chartSize.Height,
MsoTriState.msoFalse).OLEFormat.Object;
//update the worksheet with data
Excel.Worksheet datasheet =
(Excel.Worksheet)workbook.Worksheets["Sheet1"];
datasheet.Cells.ClearContents();
//set table contents
//<<SNIP code that fills data sheet with contents from our custom
dataTable object>>
//fetch chart
Excel.Chart chart = (Excel.Chart)workbook.Charts["Chart1"];
Excel.Range range = datasheet.get_Range(datasheet.Cells[1, 1],
datasheet.Cells[dataTable.RowCount + 1, dataTable.ColumnCount + 1]);
chart.ChartWizard(range, Excel.XlChartType.xlBarStacked, Type.Missing,
Excel.XlRowCol.xlRows, 1, 1, true, dataTable.ChartTitle, "", "", "");
//release objects
datasheet = null;
chart = null;
range = null;
workbook.Close(false, Type.Missing, Type.Missing);
workbook = null;
答案 0 :(得分:1)
在更新现有图表时,这似乎对我有用:
Chart.Application.Update();
我很想知道在插入新图表时这是否适合您。