默认情况下,csv将文本框名称作为列的csv标头名称。文本框不允许空格。
如何制作与csv文本框不同的标题?
有没有办法在导出到csv时在标题中显示逗号?
注意:解决方案必须只针对一个报告;不是全球性的。
答案 0 :(得分:3)
列名来自DataElementName属性,如果为空,则为Name属性。不幸的是,既不允许使用逗号或引用。
这里有一篇博文:
如何更改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.Name
和reportItem.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
总结:
此解决方法可让您在标题中添加您喜欢的任何值。
答案 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不兼容标识符的问题