2016-10-03 39 views
0

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

Excel在'CustomerDetails.xlsx'中发现不可读的内容。你想恢复这个工作簿的内容吗?如果您信任此工作簿的来源,请单击是。

我已经改名为Excel进行压缩,并在记事本中读取内容++

有在其中,这是造成以打开Excel的符号与之前播的空间下面的行百分比符号。

确认地址%基于

任何建议请问如何解决这个问题?

谢谢。

回答

0

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

在这种情况下,您可以使用UDF(如下所示)在报表运行时清理文本。 (调整此做任何你需要,删除,如果你想保持回车和输出换行符替换为焦炭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 

如果这是在报告中的一些计算发生到期,这样返回NaN,或Infinity一个表达式,那么你需要改变你的表情来处理。

IIF添加到混合中以检查意外值可以帮助您。下面的一些例子:

SSRS Formula or expression to change NaN to 0

NaN and Infinity values in SSRS

+0

谢谢!将尝试这一点,让你知道。 – Amelia

+0

完美!这工作正常。 – Amelia