在我的Excel XML中注意到自动过滤器,但不匹配的行没有被隐藏

Autofilters noticed in my Excel XML, but non-matching rows not being hidden

提问人:Maury Markowitz 提问时间:9/13/2023 更新时间:9/13/2023 访问量:10

问:

我正在使用打包“手动”创建原始 XML 中的 Excel 文件。ECMA 标准的一部分是 AutoFilter,我正在尝试使用它。我已经插入了看似正确的 XML,当这本书在 excel 中打开时,我可以看到过滤器被“注意到”,但不匹配的行没有被隐藏。

例如,我的测试书有一个工作表,其中包含 4x10 的值。我已经在sheet1.xml中使用以下XML打开了过滤:

<autoFilter ref="A1:D10">
<filterColumn colId="1">
<filters>
<filter val="1"/>
</filters>
</filterColumn>
</autoFilter>

我还将其添加到工作表的顶部:

<sheetPr filterMode="1">

这是工作簿.xml:

<definedName name="_xlnm._FilterDatabase" hidden="1" localSheetId="0">Sheet1!$A$1:$D$10</definedName>

据我所知,这就是我使用 UI 制作过滤器时 Excel 添加的全部内容,并且在我比较 XML 时,数据和格式看起来相同。是的,Excel 确实在工作簿中的引用中使用了绝对格式,这令人惊讶。

当我打开我在 excel 中创建的文件时,与“1”不匹配的行被隐藏,但是当我打开我的文件时,它们仍然可见 - 尽管列顶部的过滤器小部件确实有一个点,表示它正在过滤该列,当您打开它时,正确的值, “1”,被选中。

它只是没有隐藏行。

我还缺少其他一些东西吗?

.NET Excel XML ECMA

评论


答: 暂无答案