添加自定义图标后,可怕的“Excel 在...中发现不可读的内容”消息

问题描述 投票:0回答:1

我一直在开发使用功能区的 Excel 插件。一切都很好,直到我尝试添加一些自定义 16 x 16 图标。在办公室里,我们有 Excel 2007,那就是

Microsoft Office Excel 2007 (12.0.6683.5002) SP3 MSO (12.0.6683.5000)

我的 WinZip 是

WinZip 15.0 (9334)

当我以 Zip 文件形式打开 .xlam 文件时,我当前有 customUI\_rels 和 customUI\images 子目录。我的 customUI.xml.rels 文件的内容是

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
<Relationship Id="nbinsert" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Target="images/nbinsert.png" />
<Relationship Id="nbchange" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Target="images/nbchange.png" />
<Relationship Id="nbdelete" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Target="images/nbdelete.png" />
</Relationships>

配套的 customUI\images 子目录为空。

在此阶段,文件可以正确打开。主要的 customUI.XML 甚至没有引用这些新图标。相关部分如下所示:

  <box id="box01b" boxStyle="horizontal">
    <button id="bb00" onAction="NB.wrChange" imageMso="ChangeBinding"
      getScreentip="NB.wrChangeScreentip" getSupertip="NB.wrChangeSupertip" /> 
    <button id="bb01" onAction="NB.wrInsert" imageMso="RecurrenceEdit"
      getScreentip="NB.wrInsertScreentip" getSupertip="NB.wrInsertSupertip" />
    <button id="bb02" onAction="NB.wrDelete" imageMso="CancelRequest" 
      getScreentip="NB.wrDeleteScreentip" getSupertip="NB.wrDeleteSupertip" />
  </box>

我不使用自定义 UI 编辑器,所有 XML 都是手动编码或生成的。

一旦图标进入,我就必须进行更改,例如将 imageMso="ChangeBinding" 更改为 image="nbchange"。至少,这是我所希望的。

然后,我将新图标(三个 .png 文件)复制到 images 子目录中,保存并重命名回 .xlam 文件。当它尝试打开插件时,Excel 会发出上述错误消息。因此,在我删除这些有问题的图标后,插件可以正确打开。

在 Word 2010 中,我的图像子目录中存在额外的、未引用的图标,这没有任何问题。此外,对 XML 中不存在的图标的引用会导致图标根本不显示,但绝不会出现错误。

自定义图标是否有什么特殊之处需要观察才能正常工作,例如没有透明度?或者插件文件是如此脆弱和敏感?或者我应该尝试更高版本的 WinZip?

这些图标最初是在 www.iconfinder.com 上找到的,然后使用 MS Paint 将其缩小(最初为 32 x 32,然后缩小为 16 x 16)。我也尝试将它们更改为 24 色 .BMP 图标,但遇到了同样的问题。

我在 Excel 2010 中有自定义图标(从同一位置复制,但尺寸为 32 x 32),运行起来没有任何问题。

如有任何建议,我们将非常欢迎。

vba excel ribbon
1个回答
0
投票

您可以尝试将以下语句添加到名为

[Content_Types].xml
的文件中:

<Default Extension="png" ContentType="image/png" />

enter image description here

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.