复制 OO / LO 宏对话框的最简单方法是什么?

What is the easiest way to duplicate an OO / LO macro dialog?

在 OpenOffice / LibreOffice Calc 中,复制宏对话框的最简单方法是什么?

我已经为特定任务构建了一个,但我需要另一个只是略有不同,并且不想从头开始构建它。我尝试将 ODS 编辑为 ZIP,并复制对话框资源,但是当我重新打开该文件时,我收到一个警告说它已损坏,并且自动删除了重复项。

假设您有一个 .ods 文件,其中包含一个名为 Dialog1 的嵌入式对话框。解压缩 .ods 文件并进行以下更改:

  • 复制并粘贴 Dialog1.xmlDialog2.xml
  • 编辑 Dialog2.xml 并将 ID 更改为 dlg:id="Dialog2"
  • 编辑 dialog-lb.xml 并添加 <library:element library:name="Dialog2"/>
  • 编辑 META-INF/manifest.xml 并添加 <manifest:file-entry manifest:full-path="Dialogs/Standard/Dialog2.xml" manifest:media-type="text/xml"/>

现在将文件压缩备份,确保将其压缩到 META-INF 是第一级文件夹的位置。应该没有更多关于损坏文件的警告。

如果对话框已本地化为多种语言,则所有字符串 ID 都必须是唯一的。例如 &amp;241.DlgSpellSearch.Title 需要更改为 &amp;242.DlgSpellReplace.Title 并且 DialogStrings_es_ES.properties 中的相应条目(例如西班牙-西班牙区域设置)需要匹配。