是否可以导出为CSV并且标题包含空格?

我需要将SSRS 2005报告导出为CSV格式,其中列标题包含空格。

目前,CSV标题列标题是从textBox属性名称派生的,并使用下划线而不是空格。 还有另一种更好的方法吗?

例如,目前我有:

  • SSRS报告标题:生效日期
  • 文本框名称:Effective_Date
  • CSV标题:Effective_Date
  • 我想拥有:

  • SSRS报告标题:生效日期
  • 文本框名称:Effective_Date
  • CSV标题:生效日期

  • 看起来不可能,多挖一点我发现以下堆栈溢出帖子:

  • SSRS csv在列标题名称中用逗号导出

  • 有一个解决方案。 您需要在SSRS属性中选择按F4,选择属性,在那个选择您要重命名的特定文本框。 例如,让Textbox12成为Effective_Date。 解决方案:使用EffectiveDate重命名文本框。


    我自己解决了这个问题,方法是自定义内置的CSV呈现扩展插件,使其使用文本框的ToolTip属性作为列标题。 ToolTip属性将允许空格和其他标点符号,因此可以根据需要灵活地命名列。 这也有一个很好的副作用,就是给你一个相关的工具提示,提醒你在一个很长的报告里你看到的是哪个列,而这个列可能不可见!

    注意:在设计器中,您设置数据行的文本框的工具提示,而不是标题的文本框。

    这是不容易实现的,因为所有渲染扩展都被标记为密封类。 为了实现这一点,我使用了反编译器,并将与CSV渲染相关的所有代码抽取到我自己的项目中。 然后改变写入标题文本的行,从文本框的ToolTip属性中读取。

    在名为CsvColumnHeaderHandler的类中,您正在寻找方法OnTextBoxBegin,特别是该行:

    this.m_visitor.WriteValue(textBox.DataElementName, this.m_excelMode);
    

    只需将其更改为:

    this.m_visitor.WriteValue(textBox.ToolTip, this.m_excelMode);
    

    这个自定义渲染扩展可以被部署到报表服务器,并且它可以很好地工作。

    您不需要知道如何为此编写渲染扩展,因为正如我所说的,我只是复制(反编译)了代码。 但是,您需要知道如何部署自定义渲染扩展程序集。 有关部署的更多信息,请访问:https://msdn.microsoft.com/en-us/library/ms154516.aspx

    链接地址: http://www.djcxy.com/p/68171.html

    上一篇: Is it possible to export to CSV and have the header contain spaces?

    下一篇: Adding new fonts to TinyMCE font options