You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SSRS导出文本文件时去除双引号问题及代码排查

SSRS导出TEXT文件时移除带逗号字段的双引号问题解决

现有自定义代码的问题

  1. 命名空间错误:Microsoft.ReportingServices.ReportRendering属于报表渲染扩展开发的专用命名空间,不适用于报表自定义代码的运行环境,导致Report.RenderFormat无法正确获取当前渲染格式。
  2. 逻辑无效:双引号是SSRS在导出TEXT格式时自动添加的,此时传入函数的input参数中并不包含双引号,所以Replace操作找不到目标内容,自然无法生效。

解决方法

方法一:修改SSRS服务器的TEXT渲染配置(全局生效)

需要服务器管理员权限,修改后所有导出TEXT格式的报表都会取消自动加双引号:

  1. 找到SSRS服务器上的RSReportServer.config文件(默认路径:C:\Program Files\Microsoft SQL Server Reporting Services\SSRS\ReportServer)
  2. 定位到<Render>节点下的<Extension Name="TEXT" ...>配置块,添加或修改Qualifier属性为空:
<Extension Name="TEXT" Type="Microsoft.ReportingServices.Rendering.CsvRenderer.CsvReport,Microsoft.ReportingServices.CsvRendering">
  <Configuration>
    <DeviceInfo>
      <Qualifier></Qualifier> <!-- 取消自动添加双引号 -->
      <FieldDelimiter>,</FieldDelimiter> <!-- 保持逗号作为字段分隔符 -->
    </DeviceInfo>
  </Configuration>
</Extension>
  1. 重启SSRS服务使配置生效。

方法二:导出时通过URL参数指定(单报表临时生效)

如果没有服务器权限,可以在导出TEXT格式时,通过URL参数强制取消双引号:
在报表导出的URL末尾添加:&rc:Qualifier=
示例:

http://your-ssrs-server/ReportServer?/YourReport&rs:Command=Render&rs:Format=TEXT&rc:Qualifier=

方法三:报表层面自定义处理(无服务器权限,需调整字段输出)

如果上述方法都无法使用,可以通过修改字段表达式,让SSRS识别不到需要加引号的场景:

  1. 打开报表设计器,选中目标字段的占位符
  2. 将表达式修改为:
=IIF(Globals!RenderFormat.Name = "TEXT", Replace(Fields!NAME.Value, ",", Chr(160) & "," & Chr(160)), Fields!NAME.Value)

这里用**非断空格(Chr(160))**包裹逗号,让SSRS认为这不是分隔符,从而不添加双引号。导出后如果需要纯逗号,可以再用文本编辑器批量替换非断空格为空(如果银行格式允许非断空格则无需此步骤)。

内容的提问来源于stack exchange,提问作者Wen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 21:37:41