客户端脚本导出Excel的问题
我看了其他帖子里讲到用如下代码可以实现JS导出Excel:<script src="jquery-1.9.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
var viewMode;
$(document).ready(function () {
$('#WebViewer1').bind('loaded', function () {
// 获取 ViewMode 对象
viewMode = GetViewModel('WebViewer1');
});
});
// 导出 PDF 文件
function Button1_onclick() {
if (viewMode.PageLoaded()) {
viewMode.Export(ExportType.Pdf, function (uri) {
window.location = uri;
}, true, { FileName: "ActiveReports报表.pdf" });
}
}
// 导出 Excel 文件
function Button2_onclick() {
if (viewMode.PageLoaded()) {
viewMode.Export(ExportType.Xls, function (uri) {
window.location = uri;
}, true, { FileName: "ActiveReports报表.xls" });
}
}
// 导出 Word 文件
function Button3_onclick() {
if (viewMode.PageLoaded()) {
viewMode.Export(ExportType.Word, function (uri) {
window.location = uri;
}, true, { FileName: "ActiveReports报表.doc" });
}
}
</script>
有两个问题:
1、jquery库貌似有冲突,一旦引用jquery-1.9.1.min.js,报表一直处于加载状态。有没有非jquery版本的脚本。
2、这个导出支持钻取到子报表的导出吗?就是我钻取到下层的子报表时,运行这个方法得到的是当前报表的导出 回复 1楼fizsoft的帖子
可以通过FlashViewer + WebService 方式导出报表:
http://blog.gcpowertools.com.cn/post/2014/11/13/customize_flashviewer.aspx
问题2,我并不是十分理解您的意思,希望一起导出主报表和子报表到 Excel 吗? 只导出子报表,就是当前钻取到的报表 回复 3楼fizsoft的帖子
如果是基于2#链接中的方法,可以通过参数传递需要导出的报表,关键代码如下:
PageReport pr = new PageReport(new System.IO.FileInfo(context.Server.MapPath("PageReport1.rdlx")));
HTMLView的该怎么操作?有例子吗?Flash的有其他的问题解决不了。 回复 5楼fizsoft的帖子
理解您的问题是:希望通过 HTML Viewer 在后台导出 Excel 文件。可以参考博客:
http://blog.gcpowertools.com.cn/post/2014/08/24/advanced-html-viewer-with-export-options.aspx
前台代码:
<script language="javascript" type="text/javascript">
function ForcePostBack() {
form1.submit();
}
var reportSelect = '<select id="ReportSelect" style="width:150px"><option selected disabled>Choose Report</option><option value="SectionReport1">SectionReport1</option><option value="SectionReport2">SectionReport2</option></select>';
$(document).ready(function () {
var selectedValue = $("#fldReportName").val();
if (selectedValue !== "") {
setTimeout(function () {
$("#ReportSelect").val(selectedValue);
}, 100);
}
var toolbar = $('#WebViewer1').find('.arvToolBar');
toolbar.append(reportSelect);
//Force a postback upon report selection
$("#ReportSelect").change(function (e, args) {
var reportName = this.value;
$("#fldReportName").val(reportName);
ForcePostBack();
this.value = $("#fldReportName").val();
});
});
</script>
后台结合2#链接中导出方法导出即可。 找到了最简单的方法,用下面这段代码随便在哪个按钮的onclick调用就行:
function ExportExcel()
{
viewMode = GetViewModel('WebViewer1');
if (viewMode.PageLoaded()) {
viewMode.Export(ExportType.Xls, function (uri) {
window.location = uri;
}, true, { FileName: "ActiveReports报表.xls" });
}
}
钻取也没有关系,问题解决,可以结贴 回复 7楼fizsoft的帖子
:hjyzw:
谢谢fizsoft分享,在这边博客中也列出了基于Web客户端的导出和打印方法,可以导出当前视图下的报表内容。
http://blog.gcpowertools.com.cn/post/2013/07/23/ActiveReports_Client_Export.aspx 回复 8楼dof的帖子
嗯,其实就是这个文章里的方法,只不过没用jquery 回复 9楼fizsoft的帖子
哈哈,好的!
页:
[1]