【问题标题】:Excel not opening when exporting from reports manager从报告管理器导出时 Excel 未打开
【发布时间】:2016-10-03 19:52:23
【问题描述】:

从报告管理器导出时 Excel 文件未打开。我知道是什么问题。但要解决这个问题,我需要帮助。请任何人都可以建议我如何解决该错误。以下是详细信息。当试图打开 excel 消息显示是

Excel 在“CustomerDetails.xlsx”中发现了不可读的内容。是否要恢复此工作簿的内容?如果您信任此工作簿的来源,请单击“是”。

我已将excel重命名为zip并阅读notepad++中的内容

在下面播种的行中有百分比符号,在导致打开excel的符号之前有空格。

基于百分比的地址确认

有什么建议可以解决这个问题吗?

谢谢。

【问题讨论】:

    标签: reporting-services


    【解决方案1】:

    我将假设从数据库返回的数据是基于文本的(文本、varchar 或 nvarchar),并且其中包含一些不寻常的字符,这可能会导致这种情况。

    在这种情况下,您可以使用如下所示的 UDF 在报表运行时清理文本。 (调整它以做任何你需要的事情;如果你想在输出中保留回车和换行,请删除 char 10 和 13 的替换)

    CREATE FUNCTION [dbo].[udf_CleanText]
    (
        @dx text
    )
    
    RETURNS varchar(max)
    
    AS
    
    BEGIN
        DECLARE @cdx varchar(max) = @dx
    
        SELECT @cdx = REPLACE(@cdx, char(20), '')
        SELECT @cdx = REPLACE(@cdx, char(21), '')
        SELECT @cdx = REPLACE(@cdx, char(13), '')
        SELECT @cdx = REPLACE(@cdx, char(10), '')
        SELECT @cdx = REPLACE(@cdx, char(18), '')
        SELECT @cdx = REPLACE(@cdx, char(17), '')
        SELECT @cdx = REPLACE(@cdx, char(22), '')
    
        RETURN @cdx
    END
    

    要使用它,请将其添加到报表的查询中。

    SELECT dbo.udf_CleanText(TextField) AS TextFieldClean
    FROM tblTable
    

    如果由于报告中的某些计算而发生这种情况,例如返回 NaNInfinity 的表达式,那么您需要更改表达式来处理它。

    在组合中添加IIF 以检查意外值可以提供帮助。下面是一些例子:

    SSRS Formula or expression to change NaN to 0

    NaN and Infinity values in SSRS

    【讨论】:

    • 谢谢!。会试试这个,让你知道。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-06
    • 1970-01-01
    • 1970-01-01
    • 2012-12-16
    相关资源
    最近更新 更多