博计报表页面超过255列导出excel

博计报表 页面超过 255 列导出 excel

最近接触到一些客户的需求,客户想在页面展现的时候不分页,然后在导出 excel 的时候分页,而客户的报表列数很多,超过了 excel 255 列的限制。这样如果不做任何处理,直接在页面上点击导出 excel 的按钮,就会弹出对话框提示 excel 不支持超过 255 列,也就无法正常导出,所以要想导出这样的报表就必须采取一些特殊的设置,下面就做一个简单的例子,实现超过 255 列的不分页报表导出 excel

实现的思路为: aspx 中设置width=”-1″ ,excelUsePaperSize=”yes”然后把报表设置成按纸分页的,也可以正常导出excel

下面分别介绍一下这种方法的实现过程:

第一步:制作一张超过 255 列的报表,报表的样式如下图所示 ( 这里直接用 to(1,300) 函数实现了 )

第二步:设置分页。

点击属性 - 报表属性 - 分页,设置分页方式为按纸分页,然后另存这个报表为 300col.raq

在展现报表 aspx 的博计标签 中加入如下两个内容: width=”-1″ , excelUsePaperSize=”yes” width=”-1“的含义是页面展现的时候纸张宽度无线大,这样展现的时候就不分页了,而 excelUsePaperSize =”yes”的含义是导出excel的时候按照设置的纸张大小来分页, aspx 的内容如下:

<%@ Page Language=”C#” AutoEventWireup=”true” CodeFile=”showReport.aspx.cs” Inherits=”reportBase_reportAspx_Default” %>

<%@ Register Assembly=”report35net” Namespace=”com.runqian.report.tagTagPrefix=”rq” %>

<%@ Import Namespace=”System.IO” %>

<head runat=”server”>

<title> 无标题页 </title>

</head>

<body topmargin=0 leftmargin=0 rightmargin=0 bottomMargin=0>

<!–#include file=toolbar.aspx –>

<table id=param_tbl align=center>

< tr >

<td>

<rq :P aramTag

ID=”ParamTag_1″

Name=”param1″

ParamFileName=”"

NeedSubmit=”no”

runat =”server”

/>

</td>

<%

String comment = Request["comment"];

FileInfo paramFile = new FileInfo ( comment+”_arg.raq“);

if (paramFile.Exists){

%>

<td><a href=”javascript:_submit( param1 );”><img src=”img/query.jpg” border=no style=”vertical-align:middle“></a></td>

<%

}

%>

</ tr >

</table>

<table align=center>

< tr ><td>

<rq:HtmlTag

ID=”HtmlTag_1″

Name=”report1″

ReportFileName=”300col.raq”

funcBarLocation = “”

needSaveAsExcel =”yes”

needSaveAsPdf =”yes”

needSaveAsWord =”yes”

needSaveAsText =”yes”

needPrint =”yes”

funcBarFontSize =”12px”

funcBarFontColor =”red”

functionBarColor =”yellow”

runat =”server”

excelUsePaperSize =”yes”

width=”-1″

ExceptionPage=”reportBase/error.aspx

InputExceptionPage=”reportBase/error.aspx

/>

</td></ tr >

</table>

</body>

</html>

使用上面的 aspx 发布第一种方法制作的 300col.raq ,点击导出 excel 的按钮,选择分页方式导出,具体样式如下图所示:

点击确定,就会导出按纸分页的 excel 了,这样在页面上导出超过 255 列不分页报表的 excel 就实现了。

热门文章