我以excel格式導出時遇到同樣的情況。在我的情況下,通過仔細觀察報表輸出,我發現輸出中有非ASCII字符。我刪除了非ASCII字符,之後,Excel導出工作正常。我通過使用以下函數從包含列中刪除非ASCII字符。
CREATE FUNCTION fnc_RemoveNonASCII
(
@nstring nvarchar(255)
)
RETURNS varchar(255)
AS
BEGIN
DECLARE @Result varchar(255)
SET @Result = ''
DECLARE @nchar nvarchar(1)
DECLARE @position int
SET @position = 1
WHILE @position <= LEN(@nstring)
BEGIN
SET @nchar = SUBSTRING(@nstring, @position, 1)
--Unicode & ASCII are the same from 1 to 255.
--Only Unicode goes beyond 255
--0 to 31 are non-printable characters
IF UNICODE(@nchar) between 32 and 255
SET @Result = @Result + @nchar
SET @position = @position + 1
END
RETURN @Result
END
GO
您是否能夠在SSRS或導出的PDF中查看此特定日期的報告? – Dbloch 2014-09-12 18:04:34
正確,你的字符超出了預期的範圍,你的選擇是擦除這些值或者查看修補你的服務器。太懶惰檢查,但累積更新(CU)或服務包(SP)之一解決這個問題。 – billinkc 2014-09-12 22:28:46
@Dbloch是能夠查看PDF,WOrd,SSRS。我在上面的URL中運行了代碼,現在它似乎可以工作。 – Chakra 2014-09-13 07:09:33