通常、SSRSからエクスポートされたExcelファイルの後にこのような問題が発生した場合、Excelに問題があるデータがあります。おそらく隠されたキャラクター。ファイルを開くと、問題が起きたときにエクスポートされます。
このような状況に対処するため、SQL Serverでユーザー定義関数(UDF)を作成して、Excelが危機に瀕していることが分かっている文字を削除しました。以下は私が使用している例です。
CREATE FUNCTION [dbo].[udf_CleanData]
(
@data text
)
RETURNS varchar(max)
AS
BEGIN
DECLARE @cdata varchar(max) = @data
SELECT @cdata = REPLACE(@cdata, char(20), '') -- double quote
SELECT @cdata = REPLACE(@cdata, char(21), '') -- bullet
SELECT @cdata = REPLACE(@cdata, char(13), '') -- carriage return
SELECT @cdata = REPLACE(@cdata, char(10), '') -- line feed
SELECT @cdata = REPLACE(@cdata, char(18), '') -- single quote right
SELECT @cdata = REPLACE(@cdata, char(17), '') -- single quote left
SELECT @cdata = REPLACE(@cdata, char(22), '') -- dash
RETURN @cdata
END
必要に応じて調整できます。これは私が必要とするところで動作します。これは、開発チームがフロントエンドアプリケーションの書式設定に使用するのに適していると考えられるテキストフィールドのすべての奇妙な文字を取り除くことです。
使用法:
SELECT dbo.udf_CleanData(Field1) AS CleanField1 FROM Table1
あなたが報告されているハイパーリンクはそれで何も異常がある場合、これはそれを削除することがあります。さまざまなデータからハイパーリンクを構築する場合は、フィールドの一部またはすべてをスクラブする必要があります。これは、あなたが少しの試行錯誤を経なければならないものです。私はこの問題を持っていた
他の回、NaNの、またはインフィニティのいずれかに計算し終わるRDLの式があります。輸出後のExcelファイルには、可能性をチェックするために、あなたの表現を調整している2003年
この状況に対処するための最良の方法のように、エクセルの古いバージョンにエクスポートする際除き、このに問題があるように見えるその最終値その値を何か他のものにデフォルト設定するか、あるいは値を何か妥当な値に丸めることができます。これは、除算を行う前に分母がゼロでないことをチェックするのと同様です。
=IIf(Fields!Total.Value > 0, Fields!Count.Value/Fields!Total.Value, 0)
はここSOには良い解決策があるもののこのタイプについての質問がたくさんありますので、私は表現の束は、ここでチェックしたデータに関連する表示されません。
これを処理するもう1つの方法は、以前のバージョンのExcelに常にエクスポートすることですが、これは簡単なオプションでもオプションでもない場合があります。通常は、レポート購読のオプションとしてのみ表示されますが、開発ツールでは表示されません。
よろしくお願いします。