【问题标题】:Telerik RenderReport throws an exception "XLS rendering format is not available"Telerik RenderReport 抛出异常“XLS 渲染格式不可用”
【发布时间】:2017-10-26 16:27:17
【问题描述】:

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

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

问题是Telerik.Reporting RenderReport方法抛出异常,“XLS渲染格式不可用”,在app的电子版中,而在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. 我们已尝试更新到最新的 EdgeJ,但无济于事。
  8. 我们还以 PDF 格式呈现报告,该报告适用于两个应用程序。

【问题讨论】:

    标签: c# excel winforms telerik edgejs


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2014-01-13
      • 2012-12-29
      • 1970-01-01
      • 2013-10-27
      • 1970-01-01
      • 1970-01-01
      • 2014-07-11
      • 2013-08-12
      • 1970-01-01
      相关资源
      最近更新 更多