Reporting Services不生成Excel公式

时间:2011-07-19 16:20:42

标签: excel reporting-services export ssrs-2008 formulas

我正在为我的雇主撰写报告,其中最终产品是SSRS报告,但几乎总是会导出到Excel进行进一步操作。在此报告中,有一行实际上只是基于其他单元格值的一行计算。

我已经读过,Reporting Services可以“弄清楚”Excel公式,并且只要您的单元格值的表达式不包含数据库字段引用,只生成报表项引用,就会生成并插入它们。

嗯,我已经做到了这一点,我仍然无法让公式得以实现。我尝试过以我能想到的每种方式呈现报告,并且我尝试修改DeviceInfo参数以将OmitFormulas选项设置为False,但我仍然是空的。我甚至尝试使用硬编码值创建一个非常简单的基于表格的报告,即便如此我也没有得到公式。

以下是我的报告中的示例表达式:

=(ReportItems!Balance2.Value + ReportItems!Supply3.Value) - ReportItems!Demand3.Value

我的环境是在SSRS 2008上运行的VS 2008(完全修补/更新)(未完全修补)。我已经和服务器管理员谈过,他说它正在运行CU1(我想,不能记得肯定)。我们公司的Excel是2007版本。

我真的在我的智慧结束,所以我希望有人在那之前已经处理过这个并且可以给我一个答案。谢谢!

3 个答案:

答案 0 :(得分:1)

我也试过这个,这里的问题是SSRS 2008根本不支持这个功能。确实,在早期版本的SSRS中它得到了一定程度的支持(2005),但是他们在后来的版本中将其解决了......太糟糕了......

见链接: http://social.msdn.microsoft.com/Forums/en/sqlreportingservices/thread/ddf2f19d-3f70-4bb0-a035-00709ffee2f9

答案 1 :(得分:1)

如果您知道单元格地址,我找到了一种方法,尽管这有点像黑客。在报表中,输入单元格公式作为前缀为撇号的字符串,Excel中的“this is text”转义字符:

="'=A2+A3"

导出到Excel时,撇号将不可见,但公式显示为文本:

=A2+A3

现在,如果您执行查找/替换并删除撇号(替换为空),公式将正确计算。

答案 2 :(得分:-1)

SSRS在Excel内容方面有很多限制。正如您所提到的,Excel公式或甚至图表例如呈现为图像而不是Excel图表。

正如您所提到的那样,您希望报告在SSRS中有效,但始终会导出到Excel,您应该在http://www.officewriter.com/处真正签出OfficeWriter。

OfficeWriter可以与SSRS集成,并允许您导出完整保真的Excel文档。我的意思是你可以使用Excel公式,而不是渲染的SSRS公式,或真正的Excel图表而不是渲染图像。如果您的数据在SSRS呈现和打开文件后发生更改,则这些类型的内容不会更改。

如果最终用户发生“进一步操作”,那么这很好,他们可以更改数字,公式将重新计算,图表将更新。

如果“进一步操作”是程序化的,那么您可以使用OfficeWriters API继续操作文档。

你可能想看一看,我讨厌你在你的智慧结束。

免责声明:我是OfficeWriter的开发人员之一。