我正在开发一个VSTO加载项,它应与所有版本的Word兼容。
我编写了以下代码,在Word文件中添加了一个图表。
private void AddToNewChart()
{
// add chart
Word.Chart chart;
Word.InlineShape inlineShape;
string chartType = ((ComboBoxItem)cmbChartType.SelectedItem).Content.ToString();
if (chartType.Equals("Pie Chart"))
inlineShape = currDoc.InlineShapes.AddChart(Core.XlChartType.xlPie, Type.Missing);
else
inlineShape = currDoc.InlineShapes.AddChart(Core.XlChartType.xlColumnClustered, Type.Missing);
inlineShape.AlternativeText = newChartName + "__TabularChart";
chart = inlineShape.Chart;
// get references
dynamic chartWB = chart.ChartData.Workbook;
dynamic chartTable = chartWB.Sheets[1].ListObjects("Table1");
chartTable.DataBodyRange.ClearContents();
dynamic chartRange = chartTable.Range.Resize[2, 2];
// update data
chartTable.Resize(chartRange);
chartRange.Cells[chartRange.Rows.Count, 1] = namedRange;
chartRange.Cells[chartRange.Rows.Count, 2] = excelValue;
chartRange.Cells[chartRange.Rows.Count, 9] = string.Format("{0}->{1}->{2}", fileId, worksheet, namedRange);
this.FillChartDropdown();
chartWB.Close(1);
chartWB.Application.Quit();
chartWB.Application = null;
}
这适用于 Office 2010 , 但在Office 2013中,Excel进程不会在结束时终止,因此在添加图表后Word会完全冻结。
那么我该怎样做才能终止Excel流程呢?