经过几分钟的实验,我回答了自己的问题(见下文)。当SO让我在2天内完成时,我会接受这个答案。
我正在使用MATLAB的.NET功能来创建Word文档。我想创建一个表并合并左侧列中的前两个单元格。到目前为止,我可以创建表格:
NET.addAssembly('microsoft.office.interop.word'); %# Register Word assembly
wordApp = Microsoft.Office.Interop.Word.ApplicationClass; %# Create an instance of Word
wordDoc = wordApp.Documents; %# Get the object that handles documents
newDoc = wordDoc.Add; %# Add a new document
wordApp.Visible = 1; %# Make Word visible
selection = wordApp.Selection; %# Get the selection object to manage selected area
table = newDoc.Tables.Add(selection.Range, 3, 5); %# Create a table
table.Style = 'Table Grid'; %# Add grid lines
我在调用selection.MoveDown
方法时遇到问题。在此方法上运行METHODSVIEW表示以下输入参数:
Selection.MoveDown documentation on MSDN表明Unit参数是WdUnits枚举,我在MATLAB的Microsoft.Office.Interop.Word.WdUnits.wdCell
找到了它。
我的问题是我找不到Extend参数所需的WdMovementType枚举。我想使用wdExtend值,但我找不到它。根据{{3}},它应该在Microsoft.Office.Interop.Word.WdMovementType中。 谁能告诉我在哪里可以找到wdExtend?
修改
WdMovementType实际上确实存在于应有的位置,即Microsoft.Office.Interop.Word.WdMovementType。现在我在尝试运行MoveDown方法时遇到错误:
>> selection.MoveDown(Microsoft.Office.Interop.Word.WdUnits.wdCell, 1, Microsoft.Office.Interop.Word.WdMovementType.wdExtend); ??? Message: Bad parameter Source: Microsoft Word HelpLink: C:\Program Files (x86)\Microsoft Office\Office12\1033\WDMAIN11.CHM#36888
知道如何正确调用此方法吗?
修改
对MoveDown的调用应使用单位的wdLine
值:
>> selection.MoveDown(Microsoft.Office.Interop.Word.WdUnits.wdLine, 1, Microsoft.Office.Interop.Word.WdMovementType.wdExtend);
答案 0 :(得分:3)
我使用以下内容检查Word程序集中的枚举:
>> word = NET.addAssembly('microsoft.office.interop.word'); >> word.Enums
结果包括:
'Microsoft.Office.Interop.Word.WdMovementType'
所以我想我会尝试访问它,即使它没有出现在MATLAB的选项卡完成中。奇怪的是,现在出现之后访问它!我想它一直都在那里。
答案 1 :(得分:1)
我建议您下载最新的Word 2010程序集。 您可以从microsoft.com下载它们 How to: Install Office Primary Interop Assemblies