IRONSOFTWAREHOME
IRONXLの使用

How to Export Template in C#

Curtis Chau
Curtis Chau
Updated: 2026年6月28日

Microsoft Excelテンプレートを使用することで、データを動的に入力しながら、書式、数式、およびレイアウトを保持してレポート生成を効率化します。 このチュートリアルでは、Microsoft Officeの依存関係やExcel Interopを必要とせずにIronXLを使用して既存のExcelワークシートテンプレートにデータを効率的にエクスポートする方法を示します。以下の例では、Excelテンプレートにデータを書き込み、プロフェッショナルなExcelシート出力を作成する方法を説明します。 Microsoft Officeをインストールせずに既存のExcelテンプレートにC#をエクスポートする方法を探しているとします。 その場合、このExcelライブラリは、さまざまなソース(データセットオブジェクトを含む)からデータを挿入できるより高度な機能を備えたクリーンで高性能なソリューションを提供します。

Excelワークブックに加えて、IronXLはXMLファイルなどの他のデータ交換形式ともよく統合し、開発者が構造化データをシステム間でインポート、エクスポート、または変換することを容易にします。 データベースやシステムファイルからExcelにデータを書き込む必要がある場合でも、このライブラリは.NETアプリケーションとのシームレスな統合をサポートします。

C#でテンプレートをエクスポートする方法: 図1

データエクスポートにExcelテンプレートを使用する理由

Excelテンプレートは、ゼロからスプレッドシートを作成するよりも大きな利点を提供します。 テンプレートはプロフェッショナルな書式、複雑な数式、条件付き書式ルール、検証済みデータ構造を維持します。 組織はしばしば、インボイス、レポート、ダッシュボードのための標準化されたテンプレートを持っており、これらはデータベース、API、またはデータテーブルのようなコレクションオブジェクトから動的データを取り入れつつ、そのデザインを維持しなければなりません。 条件付き書式とセル書式を出力ファイルに適用する際に、テンプレートはxlsx形式で生成されたすべてのドキュメント間で一貫性を保証します。

既存のテンプレートをプログラム的に埋めることにより、開発者は膨大な書式作業を節約し、生成されたすべてのドキュメント間で一貫性を保証します。 IronXLは、Officeインストールを必要とせずにXLSX、XLSファイル、XLSM、XLTXテンプレートを含むさまざまなExcel形式をサポートすることで、このプロセスをシームレスにします。 これらの操作のためのソースコードは、どのプロジェクトフォルダにも簡単に実装できる単純明快なものです。

C#でテンプレートをエクスポートする方法: 図2

テンプレート操作のためのIronXLのセットアップ

まず、NuGetパッケージマネージャーを通じてIronXLをインストールします。 パッケージマネージャーコンソールを開き、次のコマンドを実行します。

PM > Install-Package IronXL.Excel

C#でテンプレートをエクスポートする方法: 図3

インストール後、必要な名前空間をC#ファイルに追加します。

using IronXL;

IronXLはMicrosoft Officeのインストールを必要とせずに独立して動作し、サーバー環境やDockerコンテナ、クラウドプラットフォームを含むクロスプラットフォームアプリケーションに理想的です。 詳しいセットアップ手順や追加情報については、IronXL入門ガイドをご覧ください。 このライブラリはWindows、Linux、macOS環境全体で.NET Framework、.NET Core、および.NET 5+をサポートし、.NETアプリケーションに最適です。

C#でテンプレートをエクスポートする方法: 図4 - 機能

Excelテンプレートの読み込みと埋め込み

既存のテンプレートをIronXLのWorkBook.Load()メソッドを使用して読み込むことは簡単です。 以下の例では、テンプレートを開き、データで埋め込む方法を示し、最初の行をヘッダーとして扱い、列名を効果的に管理します。

// Load the existing Excel template for data import
WorkBook workbook = WorkBook.Load("ReportTemplate.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Populate specific worksheet cells with data
sheet["B2"].Value = "Q4 2024 Sales Report";
sheet["C4"].StringValue = DateTime.Now.ToString("MMMM dd, yyyy");
sheet["C6"].DecimalValue = 125000.50m;
sheet["C7"].DecimalValue = 98500.75m;
sheet["C8"].Formula = "=C6-C7"; // Profit calculation
// Populate a range with array data
decimal[] monthlyData = { 10500, 12300, 15600, 11200 };
for (int i = 0; i < monthlyData.Length; i++)
{
    sheet[$"E{10 + i}"].DecimalValue = monthlyData[i];
}
// Save the populated template
workbook.SaveAs("Q4_Sales_Report.xlsx");

このコードは既にデザインされたテンプレートを読み込み、既存のすべての書式を保持し、新しいデータを特定のセルに埋め込みます。 DecimalValueプロパティは、数値データが適切な書式を保持することを保証します。 数式セルは隣接するデータが変更されると自動的に再計算され、テンプレートの計算ロジックを保持します。 IronXLでのExcel数式の操作について詳しく学びましょう。

入力

C#でテンプレートをエクスポートする方法: 図5 - サンプルテンプレート入力

出力

C#でテンプレートをエクスポートする方法: 図6 - Excelテンプレート出力をロード

テンプレートプレースホルダーとの作業

多くのテンプレートは、実際のデータで置き換えが必要なプレースホルダーテキストマーカーを使用します。 IronXLはこのシナリオをセルの反復とテキスト置換を通じて効率的に処理します。 Excelテンプレートにデータを書き込み、動的コンテンツを挿入する必要がある場合、このアプローチは最大の柔軟性を提供します。

// Load template with placeholders
WorkBook workbook = WorkBook.Load("InvoiceTemplate.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Find and replace placeholder text in cells
foreach (var cell in sheet["A1:H50"])
{
    if (cell.Text.Contains("{{CustomerName}}"))
        cell.Value = cell.Text.Replace("{{CustomerName}}", "Acme Corporation");
    if (cell.Text.Contains("{{InvoiceDate}}"))
        cell.Value = cell.Text.Replace("{{InvoiceDate}}", DateTime.Now.ToShortDateString());
    if (cell.Text.Contains("{{InvoiceNumber}}"))
        cell.Value = cell.Text.Replace("{{InvoiceNumber}}", "INV-2024-001");
}
// Populate line items dynamically
var items = new[] {
    new { Description = "Software License", Qty = 5, Price = 299.99 },
    new { Description = "Support Package", Qty = 1, Price = 999.99 }
};
int startRow = 15;
foreach (var item in items)
{
    sheet[$"B{startRow}"].Value = item.Description;
    sheet[$"E{startRow}"].IntValue = item.Qty;
    sheet[$"F{startRow}"].DoubleValue = item.Price;
    sheet[$"G{startRow}"].Formula = $"=E{startRow}*F{startRow}";
    startRow++;
}
workbook.SaveAs("GeneratedInvoice.xlsx");

このアプローチは、指定した範囲内のプレースホルダーマーカーを検索し、実際の値で置換します。 テンプレートの書式(フォント、色、境界線を含む)はプロセス全体でそのまま残ります。 より高度なシナリオのために、IronXLのセルスタイリングオプションを探索して、必要に応じて書式を動的に変更しましょう。

実世界での実装例

ここでは、既存のExcelテンプレートと事前に書式設定されたセルから月間売上報告書を生成する完全な例を紹介します。 このコードは、オブジェクト送信者のイベントを処理し、包括的なレポートを書き込む方法を示します。 システムデータベースやインメモリコレクションからのデータを扱う際には、新しいデータテーブルや既存のデータセットを使用してテンプレートを埋めることでデータを効率的にExcelにエクスポートできます。

public void GenerateMonthlyReport(string templatePath, Dictionary<string, decimal> salesData)
{
    // Load the existing template file
    WorkBook workbook = WorkBook.Load(templatePath);
    WorkSheet sheet = workbook.GetWorkSheet("Monthly Report");
    // Set report header information
    sheet["B2"].Value = $"Sales Report - {DateTime.Now:MMMM yyyy}";
    sheet["B3"].Value = $"Generated: {DateTime.Now:g}";
    // Populate sales data starting from row 6
    int currentRow = 6;
    decimal totalSales = 0;
    foreach (var sale in salesData)
    {
        sheet[$"B{currentRow}"].Value = sale.Key;  // Product name
        sheet[$"C{currentRow}"].DecimalValue = sale.Value;  // Sales amount
        sheet[$"D{currentRow}"].Formula = $"=C{currentRow}/C${salesData.Count + 6}*100"; // Percentage formula
        totalSales += sale.Value;
        currentRow++;
    }
    // Update total row with sum
    sheet[$"C{currentRow}"].DecimalValue = totalSales;
    sheet[$"C{currentRow}"].Style.Font.Bold = true;
    // Save with timestamp
    string outputPath = $"Reports/Monthly_Report_{DateTime.Now:yyyyMMdd}.xlsx";
    workbook.SaveAs(outputPath);
}

この方法は、売上データを受け入れ、標準化されたテンプレートを埋め込み、パーセンテージと合計を自動的に計算しながら、テンプレートのプロフェッショナルな外観を保持します。 テンプレート内の既存のチャートと条件付き書式は、新しいデータに基づいて自動的に更新されます。 注意: DataTableオブジェクトやデータセットコレクションからExcelにデータを転送する際には、列名を保持し、最初の行をヘッダーとして処理します。

辞書からデータを書き込んだり、データベースクエリから値を挿入したり、さまざまなシステムソースからExcelにデータをエクスポートする必要がある場合、この以下の例のアプローチはシームレスに動作します。 簡単にアクセスできるように、指定したフォルダに出力ファイルを保存してください。 DataTablesの操作についての詳細情報は、DataTableのインポートドキュメントとソースコードの例を参照してください。

入力

C#でテンプレートをエクスポートする方法: 図7 - Excelテンプレート入力

出力

C#でテンプレートをエクスポートする方法: 図8 - 月次レポート出力

一般的な問題のトラブルシューティング

テンプレートを操作する際には、ファイルパスが正しいことやテンプレートが他のプロセスによってロックされていないことを確認してください。 パスワード保護されたテンプレート用には、WorkBook.Load("template.xlsx", "password")を使用してください。 数式が更新されない場合は、データの埋め込み後にsheet.Calculate()を呼び出してください。 For large datasets, consider using workbook.SaveAs() with streaming options to optimize memory usage. さまざまなシステム環境でxlsx形式のファイルを操作する際に発生する問題についての追加情報とソリューションについては、トラブルシューティングドキュメントを確認してください。

結論

IronXLは、さまざまなソース(データセットオブジェクトやデータベース接続を含む)から効率的に動的データを注入しながら、複雑な書式を保持してC#でのExcelテンプレートの埋め込みを簡略化します。 このアプローチは、開発時間を大幅に削減し、組織の報告ワークフロー全体で文書の一貫性を維持します。 Excelにデータを書き込んだり、新しい行を挿入したり、出力ファイルにセルフォーマットを適用する必要があるかどうかにかかわらず、IronXLは.NETアプリケーションでのプロフェッショナルなExcel自動化に必要なツールを提供します。

Excelレポートの効率化の準備はできましたか? 無料のお試しIronXLトライアルを開始してプロジェクトでのテンプレート埋め込みをテストするか、ワークフローを強化するためにさらに多くのExcel自動化チュートリアルを探してみてください。 本番展開については、ニーズに合ったライセンスオプションを参考にしてください。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

...
詳しく読む

関連する記事

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。