首页 文章

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

提问于
浏览
7

我要求将SSRS 2005报告导出为CSV,其中列 Headers 包含空格 .

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

例如,目前我有:

  • SSRS报告 Headers :生效日期

  • TextBox名称:Effective_Date

  • CSV Headers :Effective_Date

我想拥有:

  • SSRS报告 Headers :生效日期

  • TextBox名称:Effective_Date

  • CSV Headers :生效日期

3 回答

  • 2

    看起来它不可能,通过更多挖掘我发现以下Stack Overflow帖子:

  • 1

    有一个解决方案 . 您需要在SSRS属性中选择按F4,选择属性,然后选择要重命名的特定文本框 . 例如,将Textbox12作为Effective_Date . 解决方案:使用EffectiveDate重命名文本框 .

  • 1

    我自己通过自定义内置的CSV呈现扩展来解决这个问题,使其使用文本框的ToolTip属性作为列 Headers . ToolTip属性将允许空格和其他标点符号,因此您可以根据需要灵活地命名列 . 这也有很好的副作用,为您提供相关的工具提示,提醒您在长报告中您可能看不到 Headers 的列!

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

    这不容易实现,因为所有渲染扩展都标记为密封类 . 因此,为了实现这一点,我使用了反编译器并将与CSV渲染相关的所有代码提取到我自己的项目中 . 然后更改了写入 Headers 文本的行,而不是从文本框的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

相关问题