【发布时间】: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);
我们无法弄清楚为什么会这样。以下是我们所知道的:
- 报告的数据在两种情况下都是相同的。
- 在两种情况下执行的 C# 代码是相同的。
- 此问题可在其他(非开发)机器上重现。
- 在单个开发人员计算机(Window 7/Excel 2010)上,异常确实 不会发生,并且报告按预期生成。另外,这台机器还包含用于开发报告的 Telerik 许可证。
- 在另一台装有 Windows 7/Excel 2010 的非开发机器上,我们遇到了同样的异常。
- 我们已经在一台 Windows 7/Excel 2013 机器上测试了该应用程序并得到了异常。
- 我们已尝试更新到最新的 EdgeJ,但无济于事。
- 我们还以 PDF 格式呈现报告,该报告适用于两个应用程序。
【问题讨论】:
标签: c# excel winforms telerik edgejs