Excel文件未打开。我知道这是什么问题。但要解决这个问题我需要帮助。请任何人都可以建议我如何解决错误。以下是详细信息。当试图打开excel消息显示是
Excel在'CustomerDetails.xlsx'中找到了不可读的内容。你想恢复这个工作簿的内容吗?如果您信任此工作簿的来源,请单击“是”。
我已将excel重命名为zip并阅读notepad ++中的内容
在导致打开excel的符号之前,在下面播放的行中有百分比符号。
确认基于地址%
任何建议请问如何解决这个问题?
感谢。
答案 0 :(得分:0)
我将假设从数据库返回的数据是基于文本的(text,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
如果由于报表中的某些计算而发生这种情况,例如返回NaN
或Infinity
的表达式,那么您需要更改表达式来处理它。
在混音中添加IIF
以检查意外值可能会有所帮助。以下是一些例子: