简而言之:
这一行:
doc.InlineShapes.AddOLEObject("Excel.Chart.8"); // doc is a Microsoft.Office.Interop.Word.Document object
打开 Excel。如何禁用此功能?
更多细节:
我正在尝试使用 c# 中的 Word2010 脚本从模板创建 docx 文档。我以这种方式打开文档:
Word.Document doc = app.Documents.Open(@"xxxx.docx",Visible:false);
在脚本期间,Word2010 不会出现,但 Excel2010 会出现,当我在 word 文档中创建图表时(“Excel.Chart.8”)
我在显示器上看到了整个图表脚本过程,这不是我想要的。
有没有办法在这个过程中隐藏 Excel2010(图表工具)?
编辑:创建 excel 图表的示例:
Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application();
Word.Document doc = app.Documents.Open(@"xxxx.docx",Visible:false);
string classtype = "Excel.Chart.8";
Bookmark shapeBookMark = doc.Bookmarks.get_Item("mybookmark");
Word.InlineShape wrdInlineShape = doc.InlineShapes.AddOLEObject(classtype, Range: shapeBookMark.Range);
if (wrdInlineShape.OLEFormat.ProgID == classtype)
{
object verb = Word.WdOLEVerb.wdOLEVerbHide;
wrdInlineShape.OLEFormat.DoVerb(ref verb);
Excel.Workbook obook = (Excel.Workbook)wrdInlineShape.OLEFormat.Object;
Excel.Worksheet sheet = (Excel.Worksheet)obook.Worksheets["Sheet1"];
//then the access of a cell goes like this:
((Microsoft.Office.Interop.Excel.Range)sheet.Cells[1, 1]).Value = "data";
}
注意必须使用 Visible:false 参数,否则 excel 和 word 都会出现在较长的脚本过程中。在一个简短的,它不会出现,但我需要做长脚本过程(创建,填充和格式化 16 个图表/docx)