excel - 从 SSRS 报告导入 Power Pivot 时出现 "XML parsing failed at line xxx, column 36: illegal xml character"

标签 excel reporting-services powerpivot excel-2016 ssrs-2014

Excel 2016 (16.0.6965.2076)

SQL Server 2014 (12.0.4213.0)

我有一个包含 10 个参数的 SSRS 报告 - 两个是日期,另外 8 个是使用查询填充选项的文本下拉列表。如果我尝试将此报告提取到 Excel 中的 Power Pivot 数据模型中(Power Pivot -> 管理 -> 从其他来源 -> 报告),则在完成表导入向导时(在成功指定我的报告和参数值并查看报告后)通过单击“选择表和 View ”页面上的“完成”按钮,在向导中正确呈现)我收到一条错误消息:

XML parsing failed at line 1345, column 36: Illegal xml character.

给出的行根据我为报告指定的参数值而有所不同,但列始终为 36。我检查了我的报告,这些行号和列号似乎与我的报告无关,因为它们通常都是大于报告中返回的行/列总数。

我在网上浏览并找到了一些处理此问题的资源,但我一直无法找到解决我的问题的方法:

This博客和this关联的 Microsoft Connect 票证建议我可以通过将报告导出为数据源并从 Power Pivot 向导中引用该报告来实现此功能,但这对我来说也不起作用,我收到了不同的错误:

Unable to obtain schema for data feed '[Report feed Name]'. Please make sure this feed exists.

我在网上其他地方找到了建议,表明此后续错误(或原始问题)可能是由于报告 URL 太长(包括参数/值)造成的。不幸的是,我看不到任何进一步的方法来减少 URL 长度(目前超过 700 个字符),因为我已经最小化了参数名称和报告名称,但仍然存在这个问题(我不相信我可以减少参数值,因为它们是从我们无法更改的应用程序数据库中获取)。

我还看到了将“从查询中获取值”参数替换为“指定值”参数的建议,但这并不可行,因为参数值必须从上述应用程序数据库中获取,并且会随着时间的推移而变化,所以需要动态获取。

任何人都可以建议我可以针对此问题采取的解决方案或进一步的故障排除步骤吗?

最佳答案

为了缩小您的问题范围,我会将报告(使用您的参数)导出为 XML 格式。这实际上是 Power Pivot 调用您的报告时正在执行的操作的手动重现。

然后我会在 XML 编辑器(例如 Visual Studio)中打开该文件并查找“第 1345 行,第 36 列:非法 xml 字符。”。

如果这是由文本框名称触发的,您可以通过设置 DataElementName 属性来覆盖它们以进行 XML 导出。

如果它是由数据值触发的,我会使用 SSRS 表达式来尝试避免它。您可以测试 Globals!RenderFormat.Name = "XML" 以仅在该场景下操作数据值。

关于excel - 从 SSRS 报告导入 Power Pivot 时出现 "XML parsing failed at line xxx, column 36: illegal xml character",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39250536/

相关文章:

excel - 在国际范围内将多行 csv 文件导入 Excel

VBA 执行该行代码,然后提示该行超出范围

vba - 搜索两个值并在循环中复制其间的所有内容

c# - 怎么把报表的表格方向从右改到左

filter - 在 Power BI 中筛选时显示相关数据

excel-formula - DAX/PowerPivot 查询函数可在一段时间内分布聚合值

excel - 多列的文本到列 - Excel VBA

layout - 更改报表中间的页面布局 (SSRS)

sql - 使用 Sql 查询以格式化方式获取用户数据

excel - 使用 RELATED 和 FILTER 交叉引用 DAX 中的两个表?