首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从ActiveReports 8导出Excel时出错

从ActiveReports 8导出Excel时出错
EN

Stack Overflow用户
提问于 2014-10-10 17:15:50
回答 2查看 1.2K关注 0票数 0

两周来,我一直在为这件事苦苦挣扎,大部分时间都是在等待对我的支持问题的回应。我有解决办法,我将在此发表,希望它能帮助下一个探讨这一问题的人。我将提交很多不必要的细节,以增加下一个人发现这个的可能性。

我正在开发一个MVC5站点,并使用ActiveReports 8 HTML5查看器来显示一个基于IList的基于代码的节报告。我已经使用availableExports参数将PDF、Word和Excel导出到GrapeCity.ActiveReports.Viewer javascript函数。查看器在页面上正确呈现,并对ActiveReports.ReportSerice.asmx进行预期的调用,该调用返回呈现报表所需的信息,包括要从其中流数据的URL。报告在观众中显示得很好。到目前一切尚好。

在我的开发机器上,我可以导出到PDF,Word和Excel。但是,部署到测试服务器时,Excel导出将停止工作,浏览器只显示一个保存文件对话框,试图保存一个名为ActiveReports.ar8?blahblahblah的文件。通过对Fiddler的深入研究,我发现除了"Command=Export“和"ExportFormat=Xls”等几个参数外,这几乎与调用上面的报表服务返回的URL几乎完全相同。

保存这个“文件”会产生一个名为ActiveReports.xls的0字节文件。例如,我可以通过删除键dll(例如GrapeCity.ActiveReports.Export.Pdf ),然后请求PDF导出来模拟其他导出类型的这种行为。在我看来,ActiveReports (至少8.1.414.0版)吞并了某些服务器端错误,比如缺少dll,并向客户端返回一个404错误代码。我认为,与一般404相比,500错误以及遗漏的细节更可取。

这使我相信测试服务器上缺少了一些东西。因为我在所有的ActiveReports all上设置了“复制本地”,而且我可以看到它们都成功地部署到测试服务器上,所以丢失的部分必须是本地机器的GAC中存在的东西,而不是服务器上的。

使用Fiddler,我已经确定对ActiveReports.ar8?blahblahblah URL的响应返回代码为404。结果的404响应的内容配置头被设置为“附件;filename=ActiveReports.xls",但内容类型是"text/html”,而不是预期的"application/vnd.ms-excel“。这告诉我,出口至少在半途而废之前就放弃了。

服务器上缺少什么来阻止Excel导出的完成?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-10 17:15:50

拼图中缺少的部分是DocumentFormat.OpenXml.dll,它的副本可以在"C:\Program (x86)\Common \ComponentOne\ActiveReport8“文件夹中找到。具有讽刺意味的是,它就在所有GrapeCity.ActiveReports程序集旁边按字母顺序排列,但是没有任何其他程序集使用它的指示,您可以像我一样很容易地从它旁边看过去,认为它是该文件夹中其他东西(如许可证生成器)的依赖项。

将对DocumentFormal.OpenXml.dll的引用添加到web项目,并将Copy设置为true,可以确保dll与其他所有内容一起部署。我的Excel导出工作现在很好。

票数 1
EN

Stack Overflow用户

发布于 2014-11-05 05:15:46

我对你所面临的不便表示歉意。您说得对,在使用ExcelExportwithExcelwithDocumentFormat.OpenXml.dll时,服务器上也需要“DocumentFormat.OpenXml.dll”。我提出了一个请求,要求将其添加到文档中。谢谢你让我们注意到这件事。

问候

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26304696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档