Telerik RenderReport抛出异常“XLS呈现格式不可用”

时间:2017-10-26 16:27:17

标签: c# excel winforms telerik edgejs

我有一个C#WinForms应用程序,它使用Telerik.Reporting dll生成.xls类型的报告。

我们正在使用Angular开发电子应用程序的增强版本。在从旧产品过渡到新产品的过程中,我们使用EdgeJ来访问报告功能。也就是说,我们在遗留应用程序和电子应用程序中运行完全相同的C#代码

问题是Telerik.Reporting RenderReport方法在应用程序的电子版本中引发了异常,“XLS呈现格式不可用”,但在WinForms版本中没有。以下是相关的代码行:

var reportSource = new InstanceReportSource { ReportDocument = rpt };
result = processor.RenderReport("XLS", reportSource, null);
rptStream = new FileStream(path + "\\" + rpttmpXlsPath, FileMode.Create);
rptStream.Write(result.DocumentBytes, 0, result.DocumentBytes.Length);

我们无法弄清楚为什么会这样。以下是我们所知道的:

  1. 报告的数据在两种情况下都相同。
  2. 正在执行的C#代码在两种情况下都是相同的。
  3. 该问题可在其他(非开发)机器上重现。
  4. 在单个开发人员计算机(Window 7 / Excel 2010)上,例外 不会发生,报告会按预期生成。此外,该机器还包含用于开发报告的Telerik许可证。
  5. 在另一台使用Windows 7 / Excel 2010的非开发机器上,我们得到了同样的例外。
  6. 我们已经在Windows 7 / Excel 2013计算机上测试了该应用程序并获得了例外。
  7. 我们尝试更新到最新的EdgeJs无济于事。
  8. 我们还以PDF格式呈现报告,该报告适用于两个应用程序。

1 个答案:

答案 0 :(得分:2)

Telerik Reporting引擎在无法解析目标格式所需的依赖关系时抛出此类异常,但XLS导出例程嵌入在Telerik.Reporting.dll中,因此您不太可能#&# 39;重新缺少一个程序集文件。与XLSX渲染相比,XLS渲染也没有任何外部依赖性,这需要DocumentFormat.OpenXml.dll。您必须收集有关异常的更多信息,以查看导致问题的原因。通常有助于将trace listener附加到您的应用程序并检查其日志以查看异常堆栈跟踪或其他重要细节。另一个选择是使用显示装配绑定信息的Assembly Binding Log Viewer,看看它的日志是否会给你任何关于发生了什么的提示。请注意,产品要求包括.NET Framework 4+完整配置文件,并考虑它是否适用于您的方案。