XlsExportクラスでセクションレポートをExcelエクスポートした時のセルの書式設定について

文書番号 : 37841     文書種別 : 使用方法     登録日 : 2015/04/03     最終更新日 : 2015/04/03
文書を印刷する
対象製品
ActiveReports for .NET 9.0J
詳細
セクションレポートをXlsExportクラスを使用してExcel形式にエクスポートした時、出力されたExcelファイル上のセルの書式設定は、対応するTextBoxコントロールのOutputFormatプロパティの設定とValueプロパティに設定されているデータの型によって自動的に決定される仕様となっています。

TextBoxコントロールのプロパティ設定/データ型と、出力されるExcelファイル上のセルの書式設定の対応表については、こちらの資料をご覧ください。

なお、上記資料にある通り、Valueプロパティに設定されている値のデータ型が"文字列型"の場合、OutputFormatプロパティの設定にかかわらず、Excelファイル上のセルの書式設定は、常に"文字列"になります。

この動作を回避するには、Valueプロパティに設定されている値のデータ型を適切なデータ型に変換してください。たとえば、以下のようなコードになります。

◆サンプルコード(VB.NET)
Private Sub Detail_Format(sender As Object, e As EventArgs) Handles Detail.Format
  ' Valueプロパティに設定されている値のデータ型を変換する。
  Dim dbl As Double
  If Double.TryParse(Me.TextBox1.Value, dbl) Then
    Me.TextBox1.Value = dbl
  End If
End Sub

◆サンプルコード(C#)
private void detail_Format(object sender, EventArgs e)
{
  // Valueプロパティに設定されている値のデータ型を変換する。
  Double dbl;
  if (Double.TryParse((string)this.textBox1.Value, out dbl))
  {
    this.textBox1.Value=dbl;
  }
}

以前のバージョンとの動作の相違について
7.0JのSP1(7.1.7470.1)以前のバージョン(1.0J~6.0Jを含む)では、セルの書式設定が上記と異なります。詳細については、こちらの文書をご覧ください。


なお、XlsExportクラスを使用して、レポートをExcel形式で出力する場合に、セルの書式を任意に設定するような機能は用意されておりません。

より精度の高いExcelエクスポートが必要な場合には、XlsExportクラスではなく、SpreadBuilderクラスの使用をご検討ください。

SpreadBuilderは、レポートをExcel形式に変換するのではなく、コード上でワークシートやセルを作成する機能です。SpreadBuilderを使用する場合、NumberFormatプロパティにより、セルの書式を任意に設定できます。

SpreadBuilderの使用法については、製品ヘルプの以下の内容をご覧ください。

ActiveReportsユーザーガイド
 - サンプルとチュートリアル
  - チュートリアル
   - 共通のチュートリアル(ページレポート、RDLレポートとセクションレポート)
    - エクスポート
     - SpreadBuilderの使用
関連情報
キーワード
問題 エクスポート