XlsExportクラスでセクションレポートをExcelエクスポートした時のセルの書式設定について
対象製品
ActiveReports for .NET 7.0J
詳細
セクションレポートをXlsExportクラスを使用してExcel形式にエクスポートした時、出力されたExcelファイル上のセルの書式設定は、サービスパックの適用状況によって異なります。
なお、XlsExportクラスを使用して、レポートをExcel形式で出力する場合に、セルの書式を任意に設定するような機能は用意されておりません。
より精度の高いExcelエクスポートが必要な場合には、XlsExportクラスではなく、SpreadBuilderクラスの使用をご検討ください。
SpreadBuilderは、レポートをExcel形式に変換するのではなく、コード上でワークシートやセルを作成する機能です。SpreadBuilderを使用する場合、NumberFormatプロパティにより、セルの書式を任意に設定できます。
SpreadBuilderの使用法については、製品ヘルプの以下の内容をご覧ください。
PowerTools ActiveReports for .NET 7.0J
- ActiveReportsユーザーガイド
- サンプルとチュートリアル
- チュートリアル
- SpreadBuilderの使用
- Service Pack 1(7.1.7470.1)以前の場合
出力されたExcelファイル上のセルの書式は、レポート上に出力されたデータの内容によって自動的に決定される仕様となっています。TextBoxコントロールのOutputFormatプロパティを設定しても、その内容がセルの書式に反映される訳ではありません。
具体的には、以下のようにセルの書式が設定されます。
レポート上の出力 Excel上のセル書式 ","(カンマ)を含んだ数値の場合 通貨型 ","(カンマ)を含まない数値の場合 ユーザー定義型 "%"を含んだ数値の場合 パーセンテージ型 上記以外 標準 - Service Pack 2(7.2.8529.1)以降の場合
出力された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;
}
}
なお、XlsExportクラスを使用して、レポートをExcel形式で出力する場合に、セルの書式を任意に設定するような機能は用意されておりません。
より精度の高いExcelエクスポートが必要な場合には、XlsExportクラスではなく、SpreadBuilderクラスの使用をご検討ください。
SpreadBuilderは、レポートをExcel形式に変換するのではなく、コード上でワークシートやセルを作成する機能です。SpreadBuilderを使用する場合、NumberFormatプロパティにより、セルの書式を任意に設定できます。
SpreadBuilderの使用法については、製品ヘルプの以下の内容をご覧ください。
PowerTools ActiveReports for .NET 7.0J
- ActiveReportsユーザーガイド
- サンプルとチュートリアル
- チュートリアル
- SpreadBuilderの使用
関連情報
- SpreadBuilderで出力したExcelファイルを開いても、セルの表示にはNumberFormatプロパティで設定した書式が反映されていません。
- セクションレポートのイベントを利用してSpreadBuilderによりExcelファイルを作成する方法【※サンプル有り】
キーワード
問題 エクスポート