gpt4 book ai didi

c# - Telerik RenderReport 抛出异常 "XLS rendering format is not available"

转载 作者:行者123 更新时间:2023-11-30 23:07:48 25 4
gpt4 key购买 nike

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

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

问题是 Telerik.Reporting RenderReport 方法抛出异常,“XLS 渲染格式不可用”,在应用程序的 electron 版本中,但在 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 格式呈现报告,该报告适用于两个应用。

最佳答案

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

关于c# - Telerik RenderReport 抛出异常 "XLS rendering format is not available",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46959374/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com