エクスポートしたExcelのシートを、別のExcelブックにコピーすると、セルや罫線の色が変わってしまう

文書番号 : 37817     文書種別 : 使用方法     登録日 : 2015/11/19     最終更新日 : 2015/11/19
文書を印刷する
対象製品
ActiveReports for .NET 9.0J
詳細
本現象は、Microsoft Excelと、ActiveReportsのExcelエクスポートの仕様により発生しています。

Excelにおけるセルや罫線などの色は、カラーパレットに登録されている、56種類のカラーインデックスにより設定されます。このカラーパレットのデータは、ワークシート単位ではなく、ワークブック単位で保存されています。

ActiveReportsのExcelエクスポート機能(描画拡張機能やSpreadBuilder機能を含む)は、デフォルトの設定では、コントロールに設定された色(.NET FrameworkのColor構造体)が反映されるよう、カラーパレットを任意の色に変更した上で、Excelファイルを出力しています。

そのため、Excelエクスポートで出力したExceファイルのワークシートを、別のワークブックへコピー(移動)した際には、そのワークブックのカラーパレットが適用され、セルや罫線の色が変化する場合があります。

本動作を回避するには、以下の2つの方法があります。

  1. Excelのデフォルトのカラーパレットを使用してエクスポートする
    UseDefaultPaletteプロパティを"True"に設定して、Excelエクスポートを行ってください。

    この場合、Excelのデフォルトのカラーパレット、またはコントロールのForeColorやBackColorプロパティなどに定義されているカスタムカラーの中から最も近い色を使用してエクスポートを行います。

    このため、レポートの実際の色とは完全に一致しない色でエクスポートされる場合がございます。これはUseDefaultPaletteプロパティを"True"に設定した場合の仕様上の動作となります。

    なお、UseDefaultPaletteプロパティは使用する機能によって、実装されているクラスが異なります。

    機能 クラス
    エクスポートフィルタ GrapeCity.ActiveReports.Export.Excel.Section.XlsExport
    描画拡張機能 GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtensionSettings
    SpreadBuilder機能 GrapeCity.SpreadBuilder.Workbook

    製品ヘルプの以下のトピックもあわせてご覧ください。

    クラスライブラリリファレンス
     - GrapeCity.ActiveReports.Export.Excel.v9 アセンブリ
      - 名前空間
       - GrapeCity.ActiveReports.Export.Excel.Page 名前空間
        - クラス
         - ExcelRenderingExtensionSettings
          - プロパティ
           - UseDefaultPalette プロパティ
       - GrapeCity.ActiveReports.Export.Excel.Section 名前空間
        - クラス
         - XlsExport
          - プロパティ
           - UseDefaultPalette プロパティ
       - GrapeCity.SpreadBuilder 名前空間
        - クラス
         - Workbook
          - プロパティ
           - UseDefaultPalette プロパティ

  2. カラーパレットもコピーする
    ワークブックのカラーパレットは、別のワークブックにコピーすることが可能です。

    Excelエクスポートで出力したExceファイルのワークシートを別のワークブックにコピーする際に、カラーパレットもコピーすることで元のワークシートの色を維持したままコピーできます。

    運用上の対処方法となりますが、マイクロソフト社のWebサイトで公開されている以下の同様の事例をご参照の上、ご検討ください。

    Reporting Services からエクスポートされた Excel ワークシートをコピーすると、色が乱れる

    ただし、カラーパレットをコピーした場合、コピー先ブックの別シートの表示色も変化する可能性がありますので、あらかじめご注意ください。
キーワード
問題 エクスポート