2016-10-03 71 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