4

我正在尝试按照本文中描述的手动方法在 Word 2007 文档中动态添加新的自定义功能区:- http://msdn.microsoft.com/en-us/library/aa338202(v=office.12)。 .aspx _

该文章指定以下内容:-

a) 创建一个名为 customUI.xml 的 XML 文件,该文件将包含您要在选项卡中显示的元素,并将其放在名为 customUI 的文件夹中。

b) 将您的 Word 2007 文档重命名为 .zip。将上述“customUI”文件夹添加到 zip 文件中。

c) 将以下关系添加到 .zip 文件中的“_rels/rels”文件中:-

<Relationship Type="http://schemas.microsoft.com/office/2006/
  relationships/ui/extensibility" Target="/customUI/customUI.xml" 
  Id="customUIRelID" />

我们是否有一些代码示例可以使用 OpenXML SDK 实现相同的目标?例如,如何将“RibbonExtensibilityPart”(包含功能区 XML)添加到文档中?

编辑:-

这就是我执行上述步骤的方式:-

 string documentFileName = <path of the docx file>;
  string ribbonXml        =  <path of the ribbon XML file>;
 using (WordprocessingDocument myDoc = WordprocessingDocument.Open(documentFileName, true))
 {
   MainDocumentPart mainPart = myDoc.MainDocumentPart;

   if (myDoc.GetPartsCountOfType<RibbonExtensibilityPart>() > 0)
      myDoc.DeletePart(myDoc.GetPartsOfType<RibbonExtensibilityPart>().First());

   RibbonExtensibilityPart ribbonExtensibilityPart = myDoc.AddNewPart<RibbonExtensibilityPart>();
   ribbonExtensibilityPart.CustomUI = new DocumentFormat.OpenXml.Office.CustomUI.CustomUI(File.ReadAllText(ribbonXML));

   myDoc.CreateRelationshipToPart(ribbonExtensibilityPart);
 }

我可以看到带有元素的新功能区。但是,我在功能区中有按钮,我想在这些按钮上添加句柄操作。以下是我的功能区 XML 的样子:-

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
  <ribbon>
    <tabs>
      <tab id="CustomTab" label="My Tab">
        <group id="MyGroup" label="My Group" >
          <button id="Button1" label="My Large Button" 
            size="large"/>
          <button id="Button2" label="My Normal Button" 
            size="normal" *onAction="ThisDocument.MyOtherButtonMacro"* />
        </group >
      </tab>
    </tabs>
  </ribbon>
</customUI>

看看“ onAction="ThisDocument.MyOtherButtonMacro "。我知道我可以在文档中编写宏功能。但是,由于自定义功能区将在服务器端动态添加,我不确定如何添加动态宏。有人可以帮忙吗?

4

0 回答 0