我正在为我的雇主撰写报告,其中最终产品是SSRS报告,但几乎总是会导出到Excel进行进一步操作。在此报告中,有一行实际上只是基于其他单元格值的一行计算。
我已经读过,Reporting Services可以“弄清楚”Excel公式,并且只要您的单元格值的表达式不包含数据库字段引用,只生成报表项引用,就会生成并插入它们。
嗯,我已经做到了这一点,我仍然无法让公式得以实现。我尝试过以我能想到的每种方式呈现报告,并且我尝试修改DeviceInfo参数以将OmitFormulas
选项设置为False
,但我仍然是空的。我甚至尝试使用硬编码值创建一个非常简单的基于表格的报告,即便如此我也没有得到公式。
以下是我的报告中的示例表达式:
=(ReportItems!Balance2.Value + ReportItems!Supply3.Value) - ReportItems!Demand3.Value
我的环境是在SSRS 2008上运行的VS 2008(完全修补/更新)(未完全修补)。我已经和服务器管理员谈过,他说它正在运行CU1(我想,不能记得肯定)。我们公司的Excel是2007版本。
我真的在我的智慧结束,所以我希望有人在那之前已经处理过这个并且可以给我一个答案。谢谢!
答案 0 :(得分:1)
我也试过这个,这里的问题是SSRS 2008根本不支持这个功能。确实,在早期版本的SSRS中它得到了一定程度的支持(2005),但是他们在后来的版本中将其解决了......太糟糕了......
答案 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的开发人员之一。