このチュートリアルでは、新しいスマートフォン・シリーズを発売する企業のマーケティングレポートを作成するユーズケースを考慮します。従って、計画されたマーケティング活動のExcelレポートを作成する必要があります。レポートには、予定されている打ち上げイベント、その予算、および費用の詳細を記載します。この場合、データテーブルをデータソースして使用しています。テンプレートレイアウトは、複数のレポートを生成するために、異なるExcelワークシートで作成されます。
以下は、テンプレートを使用してExcelレポートを生成する方法を説明します。
テンプレートレイアウト: マーケティングレポート
本レイアウトで、Groupプロパティ「G」をMergeに設定して、スマートフォン名をグループごとに一度のみ表示します。Merge値で各グループのセルが結合されます。
テンプレートレイアウト: スマートフォンの費用
本レイアウトは、ExpansionとContextという2つのテンプレートプロパティを使用します。
テンプレートレイアウト: 発表イベント
本レイアウトは、Range、Sort、Expansion、PageBreakという4つのテンプレートプロパティを使用します。
テンプレートレイアウト: {{ds.Country}}
C# |
コードのコピー
|
---|---|
Console.WriteLine("GcExcelテンプレートを使用してマーケティングレポートの生成"); //ワークブックを初期化します var workbook = new Workbook(); //ResourceからBudgetPlan_DataTable.xlsxテンプレートをワークブックにロードします var templateFile = "../../../Resources/BudgetPlan_DataTable.xlsx"; workbook.Open(templateFile); |
C# |
コードのコピー
|
---|---|
//カスタムオブジェクト・DataSet・DataTable・JSON・変数のようなデータソースの種類があります //DataTableを使用します var dataSource = new DataTable(); //テンプレートフィールドに従ってDataTableにDataColumnsを追加します dataSource.Columns.Add(new DataColumn("SmartPhone", typeof(string))); dataSource.Columns.Add(new DataColumn("Event", typeof(string))); dataSource.Columns.Add(new DataColumn("Budget", typeof(Int32))); dataSource.Columns.Add(new DataColumn("Expense", typeof(Int32))); dataSource.Columns.Add(new DataColumn("City", typeof(string))); dataSource.Columns.Add(new DataColumn("Country", typeof(string))); //DataTableにデータを追加します dataSource.Rows.Add("Apple iPhone 11", "携帯電話の発売", 1000, 950, "シアトル", "アメリカ"); dataSource.Rows.Add("Apple iPhone 11", "CEOとの会議", 2000, 1800, "ニューヨーク", "アメリカ"); dataSource.Rows.Add("Samsung Galaxy S10", "CEOとの会議", 1600, 1550, "パリ", "フランス"); dataSource.Rows.Add("Apple iPhone XR", "携帯電話の発売", 1800, 1650, " ケープタウン ", "南アフリカ"); dataSource.Rows.Add("Samsung Galaxy S9", "携帯電話の発売", 1500, 1300, "パリ", "フランス"); dataSource.Rows.Add("Apple iPhone XR", "CEOとの会議", 1600, 1500, " ニュージャージー ", "アメリカ"); dataSource.Rows.Add("Samsung Galaxy S9", "CEOとの会議", 1200, 1150, "シアトル", "アメリカ"); dataSource.Rows.Add("Samsung Galaxy S10", "携帯電話の発売", 1100, 1070, " ダーバン ", "南アフリカ"); |
C# |
コードのコピー
|
---|---|
//DataSourceを追加します //「ds」は、{{ds.SmartPhone}}などのフィールドを定義するためにテンプレートで使用されるdataSourceの名前です workbook.AddDataSource("ds", dataSource); |
C# |
コードのコピー
|
---|---|
//テンプレートを処理する呼び出します
workbook.ProcessTemplate();
|
C# |
コードのコピー
|
---|---|
//ワークブックをExcelとして保存します workbook.Save("MarketingReport_DataTable.xlsx"); |
上記のテンプレートで生成される各レポートの例を以下の画像で表示します。
Excelレポート: マーケティングレポート
Excelレポート: スマートフォンの費用
Excelレポート: 発表イベント
Excelレポート: 国 (複数レポートが生成されます。)
上記の処理により、Excel レポートの生成中にテンプレートが上書きされます。 テンプレートを保持しながらレポートを作成するには、以下の「テンプレートを保持しながらレポートを作成する」セクションを参照してください。
GcExcel には、テンプレートを保持しながら新しいワークブックレポートのインスタンスを返す IWorkbook インターフェイスの GenerateReport メソッドがあります。このメソッドは、特定のワークシートのみのレポートを生成できるように、オーバーロードも提供します。
GenerateReport メソッドを使用してレポートを生成する方法については、次のサンプル コードを参照してください。
C# |
コードのコピー
|
---|---|
//テンプレートを処理し、レポートワークブックのインスタンスを返します IWorkbook report = workbook.GenerateReport(); // 特定のワークシートのテンプレートのみを処理します // IWorkbook report = workbook.GenerateReport(workbook.Worksheets["Sales"]); |
レポートを生成する方法については、GcExcel のサンプルブラウザを参照してください。