我们在Web应用程序中使用了不推荐使用的ActiveX控件(OWC)。即使控件已弃用,控件仍然可以正常工作,除了“导出到Excel”按钮不适用于Excel 2013(适用于其他版本的Excel)。在其他版本的Excel下,ActiveX控件将打开Excel,并指向已设置的OLAP多维数据集的链接。
我们试图弄清楚为什么它适用于旧版本但不适用于Excel 2013.任何想法?
程序通常如何进行导出?程序是否在注册表中查找Excel的位置然后运行它?
答案 0 :(得分:3)
这似乎是Microsoft Excel 2013的XML Spreadsheet 2003文件加载器中的错误。在内部从OWC11导出到Excel时,OWC组件生成XML Spreadsheet 2003文件并将其嵌入到HTML文档中。您可以通过单击文件然后单击“属性”,转到文档所在的文件夹并使用文本编辑器编辑文档来查看。它将具有.htm扩展名,但Excel忽略除内部XML文档之外的所有内容。无论如何......如果删除数据透视表项的所有过滤器(如果选择了所有数据透视表项),Excel 2013可以加载该文件。通过下拉透视项目并取消选中其中一个项目来过滤某些结果...然后,导出到Excel 2013 ..并且Excel 2013崩溃。如果比较在Excel 2013中工作的一个和崩溃Excel 2013的一个,您将看到存在导致Excel 2013崩溃的隐藏标记。您甚至可以通过加载未过滤的文档多维数据集直接在Excel2013中重现该问题,导出到Excel 2013 ..,在Excel 2013中过滤。保存为XML Spreadsheet 2003.然后关闭它。并打开已保存的已过滤文档。的Insta-崩溃。这显然是Excel 2013错误,因为原始文档没有隐藏标记。在Excel 2013中对其进行筛选,然后将其另存为XML Spreadsheet 2003时,Excel会添加隐藏的标记。下次加载文档时,excel在遇到隐藏标记时崩溃。如果使用文本编辑器从保存的文档中删除隐藏标记,Excel可以再次加载它,但不会过滤任何内容。如果你能让微软修复这个bug,那就太棒了:)。