2010-12-05 31 views
7

Reporting Servicesテンプレートに日付値を持つフィールドがあるとします。 =CDate("2010.12.03")、私はこのセルに "d"フォーマットを適用します。これは、説明に従って、 "レポートの地域設定を反映します"。私は英語を使用してレポートを生成し、日付は12/03/2010と表示されます。これは問題ありません。このレポートをExcelにエクスポートすると、_ _が何であるか分かりません。SSRS 2008日付の書式設定と書き出しが混乱に敏感になる

最初のシナリオ:コンピュータの地域設定が英語(米国)に設定されています。 Excel文書を開くと、セルに表示される値は、期待通りに12/03/2010になります。私がそれをクリックすると、セルに格納されている実際の値が2010.12.03であることがわかります。いくつかの書式設定がセルに適用されます。単純にテキストとしてエクスポートされません。しかし、どのタイプのフォーマットが適用されているのかを把握しようとすると、右クリックしてセルのフォーマットをチェックすると、そのフォーマットは「一般的」、つまりnoneになります。どうすればいいの ?ところで、これはExcel 2010ですが、ファイル自体は.xlsです。

さらに興味深い第2のシナリオ:今やコンピュータの領域は、例えば、リトアニア、日付の形式は2010.12.03です。同じ文書を開き、12.03.2010を参照してください。今は単純に意味をなさない。何度もエクスポートしたところ、セルがExcelで(カスタムセクションの下で)[$-10409]m.d.yyyyという形式でフォーマットされていることがあります。これは何ですか、10409は何を意味しますか?最も奇妙な部分:私は保存せずに文書を閉じると、コンピュータの領域を英語(米国)に戻し、文書を再び開きます。形式は今や[$-10409]m/d/yyyyです!これはどのように可能ですか?

基本的に数字と千/小数点の区切り文字でも同じことが起こります.excelはコンピュータの領域を使用してフォーマットしますが、セルの実際のフォーマットは[$-10409]#,##0.00;-#,##0.00または一般的ですコンピュータの方向、風の方向、および外側の温度。

私の質問は、まず、_ _が進行中ですか?次に、Excelのドキュメントが仕様に従って動作するかどうか、つまり、日付のテキストボックスの「d」形式を選択したBIDSでフォーマットが「レポートの地域設定を反映する」という記述が何を意味するのか?形式はレポートの言語によって決定され、結果は世界のすべてのコンピュータで同じに見えます(これは他の形式の動作の仕方であるため意味があります。つまり、日付をpdf、それは常に同じままです)?そうでない場合、部分的にExcelの場合のように見えますが、エクスポートされた日付セルには、地域の日付形式、つまり通常はExcelで使用する形式、つまりコンピュータの地域に応じて日付をフォーマットする形式?

これらはExcelの制限のいくつかの種類ですか?一貫性のある動作をすることができません。つまり、コンピュータの文化に敏感なものをドキュメントを表示するかしないか、実際の動作はどうしてその中間にあるのでしょうか。

答えて

2

Excelは、日付のカスタムエンコードを使用し、コンテンツの書式設定のヒントとして、コンピュータの地域設定を使用します。エンコーディングは古いもので、特定の歴史的なものがたくさんあります。

これは、よく見られるバグの種類が発生することが多いことを意味します。実際にExcelアプリケーションで最初に開かれたデータは、Excelにエクスポートされています。 Excelにデータをエクスポートするライブラリは、より難解な歴史的なケースのいくつかをうまく扱っていないかもしれません。あるいはExcelが途中で混乱しているかもしれません。

日付を文字列としてCSVファイルにエクスポートし、書式を取り除き、Excelに読み込んだりExcelで開いたりすることで、過去にいくつかの成功を収めました。

0

私はで私の日付の書式設定の問題をソート:私は* dateformatsを使用していますかDATEFORMAT

  • として

    =IIF(IsNothing(Fields!Date_Delivery_Confirmed.Value),nothing,DateSerial(DatePart("yyyy",Fields!Date_Delivery_Confirmed.Value), DatePart("m",Fields!Date_Delivery_Confirmed.Value),DatePart("d",Fields!Date_Delivery_Confirmed.Value))) 
    
  • セットセルのテキストボックスを:日付の計算フィールドを追加すること

    1. (ローカライズされた)自分のサーバーのラップトップを確認し、レポートが適切な言語に設定されている

    2. Excelにエクスポートするときに余分な空の列が作成されないように、レポートに垂直方向に要素を配置しました。 2つのExcelの列が1つの日付セルにマージされるため、フォーマットは決して「一般的なフォーマット」ではなく「一般的なフォーマット」になります。

  • 関連する問題