我以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