ssrs 2012报告导出到excel并能够对输出数据进行排序

时间:2013-11-10 03:06:03

标签: sql-server reporting-services ssrs-grouping ssrs-2008-r2 ssrs-2012

在新的sql server report 2012(ssrs 2012)中,我有一个仪表板报告,用户可以将各种页面导出到excel。用户希望能够对其Excel电子表格中的数据进行排序。但是,他们收到有关合并单元格的错误消息。

为了解决这个问题到目前为止,我已经更改了一些没有报告标题的测试ssrs 20012报告。报告具有的唯一标头类型是列标题。当只有列标题时,我可以将报告导出到Excel并对所有数据列进行排序。

我在测试ssrs 2012报告中删除的是报告标题,其宽度与报告的详细信息行相同。此外,我删除了“子类别”报告标题,它们一起构成与细节线相同的宽度。

原始报告如下所示:

                        Customer Purchase Order

    customer name: customer name1
    customer number: customer number1

    item       item               quantity       unit
    number     description         ordered        price
     1234         item_kind           2           $10

您能否告诉我是否有可以保留现有报告标题的方法?如果是这样,您能告诉我如何保留报告标题吗?

如果我无法保留报告标题,您能否告诉我如何将客户名称,客户编号和报告名称导出为Excel?我唯一能想到的是将附加信息作为细节线信息。因此,详细信息行信息将包含以下内容: 报告名称,客户名称,客户编号,项目编号,项目描述,订购数量,单价。

因此,您能告诉我您是否有任何想法可以解决我将ssrs 2012报告导出到Excel的问题,用户可以对数据进行排序吗?

1 个答案:

答案 0 :(得分:0)

正如其他用户所说,如果您导出到csv而不是excel,它将展平数据并删除格式,因此标题信息应在导出数据中显示为额外列,并在每行重复。然后,您可以在Excel中打开csv。

SSRS 2012(可能还有2008年)中提供的另一个选项是使用内置变量“RenderFormat.Name”来控制输出和输出的内容。将客户编号和名称添加到Tablix作为列,然后在标题文本框上设置隐藏属性以在excel导出中隐藏它们,否则在新添加的字段中执行相反的操作。

标题项的隐藏属性如下所示:

= iif(Globals!RenderFormat.Name =“EXCEL”,True,False)

对于列切换真假轮次:

= iif(Globals!RenderFormat.Name =“EXCEL”,False,True)