SSRS csv使用列标题名称中的逗号导出

时间:2010-04-13 17:38:17

标签: reporting-services export-to-csv reportingservices-2005 ssrs-tablix

默认情况下,csv将文本框名称作为列的csv标头名称。文本框不允许空格。

如何制作与csv文本框不同的标题?
有没有办法在导出到csv时在标题中显示逗号?

注意:解决方案必须只针对一个报告;不是全球性的。

5 个答案:

答案 0 :(得分:3)

列名来自DataElementName属性,如果为空,则为Name属性。不幸的是,既不允许使用逗号或引用。

这里有一篇博文:

http://www.behindthecode.net/Blog/post/2008/01/29/How-to-modify-Reporting-Services-CSV-export-Behavior.aspx

如何更改csv exports配置文件中的设置。这些是全球变化。可用属性列表如下:

http://msdn.microsoft.com/en-us/library/ms155365.aspx

这些都不允许您需要的空格,或者我目前正在尝试实现的列名引用。遗憾。

答案 1 :(得分:1)

简而言之,不,这是不可能的

来自SSRS 2008 Column issue when exporting to a CSV file

  

对于csv导出,列的标题由实际包含数据的文本框的DataElementName属性确定。如果用户未显式设置DataElementName属性,则DataElementName会自动默认为textbox.Name属性的值。

     

话虽如此,我相信您会遇到此问题,因为RDL限制reportItem.NamereportItem.DataElementName属性必须为CLS-compliant identifiers"Phone #""Other Name(s)"等标题不符合CLS。

     

您可以通过在BIDS或RB中打开报告并尝试将包含数据的文本框的DataElementName / Name属性设置为这些名称来验证这一点。

     

您将收到一条错误消息,其中包含以下内容:

     

Property Value is not valid. Specify a valid name. The name cannot contain spaces, and it must begin with a letter followed by letters, numbers, or the underscore character (_).

有一个关于此问题的Microsoft Connect问题,但遗憾的是它看起来不会被采取行动 Use of expressions for DataElementName property (for CSV Export)

答案 2 :(得分:1)

此解决方案有效:https://stackoverflow.com/a/32110072/674237

总结:

  1. 修改您的查询,使数据集中的第一行成为您想要的列标题。例如,选择标题名称并将它们与数据集合并。
  2. 向报表服务器添加新的CSV呈现扩展插件,用于排除标题。
  3. 此解决方法可让您在标题中添加您喜欢的任何值。

答案 3 :(得分:0)

将以下查询参数附加到您的网址:

  • 适用于# - [url] &rs:format=CSV&rc:FieldDelimiter=%23
  • 适用于; - [url] &rs:format=CSV&rc:FieldDelimiter=";"

不确定您是否可以直接从Report Manager直接执行此操作而不在某处更改配置文件

更新:重新读取后,是否从这样的过程返回列标题?

SELECT tbl.colname [my column name, some text],  
       tbl.col2    [another, col]

方括号将允许您转义字符。

答案 4 :(得分:0)

默认情况下,从<Name>字段中选取Csv,Dbf和Xml的列名称。

通过在* .mrt文件的<Tag>字段中为每种格式添加适当的名称来解决此问题。 E.g:

<Name>Txt_InternalName</Name> <Tag>CSV:"Name for Csv"; DBF: "Name for DBF"; XML: "Name for Xml"; Default: "Default Name for Csv Dbf Xml"</Tag>

它还解决了标题

中CLS不兼容标识符的问题