XlsExportクラスでセクションレポートをExcelエクスポートした時のセルの書式設定について
対象製品
ActiveReports for .NET 9.0J
詳細
セクションレポートをXlsExportクラスを使用してExcel形式にエクスポートした時、出力されたExcelファイル上のセルの書式設定は、対応するTextBoxコントロールのOutputFormatプロパティの設定とValueプロパティに設定されているデータの型によって自動的に決定される仕様となっています。
TextBoxコントロールのプロパティ設定/データ型と、出力されるExcelファイル上のセルの書式設定の対応表については、こちらの資料をご覧ください。
なお、上記資料にある通り、Valueプロパティに設定されている値のデータ型が"文字列型"の場合、OutputFormatプロパティの設定にかかわらず、Excelファイル上のセルの書式設定は、常に"文字列"になります。
この動作を回避するには、Valueプロパティに設定されている値のデータ型を適切なデータ型に変換してください。たとえば、以下のようなコードになります。
◆サンプルコード(VB.NET)
◆サンプルコード(C#)
なお、XlsExportクラスを使用して、レポートをExcel形式で出力する場合に、セルの書式を任意に設定するような機能は用意されておりません。
より精度の高いExcelエクスポートが必要な場合には、XlsExportクラスではなく、SpreadBuilderクラスの使用をご検討ください。
SpreadBuilderは、レポートをExcel形式に変換するのではなく、コード上でワークシートやセルを作成する機能です。SpreadBuilderを使用する場合、NumberFormatプロパティにより、セルの書式を任意に設定できます。
SpreadBuilderの使用法については、製品ヘルプの以下の内容をご覧ください。
ActiveReportsユーザーガイド
- サンプルとチュートリアル
- チュートリアル
- 共通のチュートリアル(ページレポート、RDLレポートとセクションレポート)
- エクスポート
- SpreadBuilderの使用
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
' 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;
}
}
{
// 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の使用
関連情報
- SpreadBuilderで出力したExcelファイルを開いても、セルの表示にはNumberFormatプロパティで設定した書式が反映されていません。
- セクションレポートのイベントを利用してSpreadBuilderによりExcelファイルを作成する方法【※サンプル有り】
キーワード
問題 エクスポート