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

SSRS 2016(13.0.4001.0)导出Excel文件名被截断问题求解

解决SSRS 2016导出Excel文件名被截断的问题

这个问题我之前帮好几个同行处理过,本质是SSRS 2016的一个小bug——它会把报表名称里的第一个.错误识别为文件名和扩展名的分隔符,所以"6.0 Reports"就被截成了"6"再加上Excel的扩展名.xlsx,变成了"6.xlsx"。下面是几个实用的解决办法:

方法1:修改报表名称替换点符号

最简单的临时方案就是调整报表显示名称:

  • 把报表名从6.0 Reports改成6_0 Reports或者6-0 Reports,用下划线或短横线替代点
  • 保存报表后重新导出,文件名就会完整显示为6_0 Reports.xlsx或者6-0 Reports.xlsx

方法2:通过报表属性自定义导出文件名

如果不想改报表的显示名称,可以通过报表的自定义属性指定导出文件名:

  1. 打开报表设计器,右键点击报表空白处,选择报表属性
  2. 切换到代码标签页,输入以下自定义代码:
    Public Function GetExcelFileName() As String
        Return "6.0 Reports"
    End Function
    
  3. 切换到参数标签页,点击添加新建参数(比如命名为ExcelFileName):
    • 数据类型选文本
    • 勾选隐藏选项,将参数设为隐藏状态
    • 默认值选择指定值,点击添加,在表达式里输入=Code.GetExcelFileName()
  4. 保存报表后,在报表服务器上导出Excel时,文件名就会自动使用你指定的6.0 Reports.xlsx

方法3:修改报表服务器配置文件(进阶全局方案)

如果你的环境里有很多类似报表都遇到这个问题,可以修改SSRS配置文件全局解决:

  1. 找到SSRS安装目录下的rsreportserver.config文件(默认路径是C:\Program Files\Microsoft SQL Server\MSRS13.MSSQLSERVER\Reporting Services\ReportServer)
  2. 打开文件,找到<Extension Name="EXCEL" Type="Microsoft.ReportingServices.Rendering.ExcelRenderer.ExcelRenderer,Microsoft.ReportingServices.ExcelRendering">节点
  3. 在该节点内添加配置项:
    <Configuration>
        <DeviceInfo>
            <FileName>6.0 Reports</FileName>
        </DeviceInfo>
    </Configuration>
    
    注意:这个方法是针对Excel导出的全局配置,若要针对单个报表,方法2的灵活性更高。

另外提一句,SSRS 2016的后续累积更新(CU)可能修复了这个问题,如果你还没升级到最新CU,可以尝试更新到CU15及以上版本,说不定官方已经解决了这个文件名截断的bug。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:18:37