IRONXLの使用

C#でExcelファイルを操作する方法

公開済み 2024年9月29日
共有:

イントロダクション

プログラミング言語でMicrosoft Excelファイルを扱うことは、今日の現代的なプログラミングパラダイムにおいて重要な要件となっています。 自動化、データ分析、生産性の測定、レポートなどにはExcelの生成が必要です。IronXLからIron Softwareは、開発者がマイクロソフト Excel をマシンにインストールすることなく、Web サービス、コンソール、デスクトップなどのあらゆるアプリケーションで Excel ドキュメントを読み取り、書き込み、操作できる強力な C# ライブラリです。これは、Excel データを効率的かつ効果的に処理する必要があるアプリケーションにとって優れた選択肢です。 この記事では、IronXLを使用してC#でExcelファイルを操作する方法を探ります。

C#でExcelワークブックを操作する方法

  1. Visual Studio プロジェクトを作成し、IronXL NuGet パッケージを追加します。

  2. Interopを使用せずにExcelファイルを作成します。

  3. IronXLを使用してExcelファイルにスタイルを追加します。

  4. Excelから値を読み取り、計算します。

  5. ExcelをHTMLに変換してウェブで使用する。

IronXLライブラリの紹介

IronXLは、Excelファイルの操作を簡素化するための.NET用の強力なライブラリです。 IronXLは、Excelファイルの作成、読み取り、編集を簡単に行うために設計された強力な.NETライブラリです。 直感的なAPIを備えており、XLS、XLSX、CSVなどのさまざまな形式をサポートすることで、Excelドキュメントの操作を簡素化します。この汎用性により、セル値、数式、および書式設定の容易な操作が可能です。 IronXLはパフォーマンス向けに最適化されており、大きなファイルや複雑なデータ操作を効率的に処理しつつ、効率的なメモリ使用を確保することができます。 そのクロスプラットフォーム互換性により、IronXLの有用性が向上し、異なるオペレーティングシステムの開発者にとって貴重なツールとなっています。 以下にその主な機能と利点を示します。

主な機能

  1. インポートとエクスポート: 1. データのインポート:XLS、XLSX、CSV、およびTSV形式をサポートします。

  2. データのエクスポート: ワークシートをXLS、XLSX、CSV、TSV、JSON形式でエクスポートできます。

  3. データ操作:

  4. System.Data 統合: スプレッドシートを `System.Data.DataSet` および `System.Data.DataTable` オブジェクトとして扱う。

  5. 数式: シートが編集されるたびに再計算されるExcelの数式をサポートします。

  6. スタイリングとフォーマット:

  7. セルスタイリング:フォント、サイズ、背景パターン、境界線、配置、数値形式をカスタマイズします。

  8. 範囲:`WorkSheet`による直感的な範囲設定[「A1:B10」]`構文。

  9. セキュリティ:

    暗号化: パスワードを使用してXLSX、XLSM、XLTXファイルを暗号化および復号化します。クロスプラットフォーム互換性: 1. .NET Framework、.NET Core、.NET Standard、およびAzureと互換性があります。2. Windows、macOS、Linux、Docker、Azure、およびAWSと互換性があります。

利点

  1. Microsoft Officeは不要: IronXLはMicrosoft Officeのインストールを必要としないため、軽量で展開が容易です。

  2. 使いやすさ: APIは直感的で使いやすく、開発者はアプリケーションにExcelの機能を素早く統合できます。 パフォーマンス: IronXLはパフォーマンスを最適化されており、大きなExcelファイルの高速かつ効率的な処理を保証します。

  3. 多用途性: Web、デスクトップ、クラウドベースのソリューションを含む幅広いアプリケーションに適しています。包括的なドキュメント: 開発者が始めやすく、一般的な問題の解決策を見つけやすくするための豊富なドキュメントと例が用意されています。

はじめに

.NET プロジェクトで IronXL を使用するには、開発環境が次の前提条件を満たしていることを確認する必要があります。

前提条件

  1. .NET Framework: IronXLは、.NET Framework 4.5およびそれ以降の.NET技術をサポートしています。

  2. .NET Coreと.NET Standard: .NET Core 2、3、5、6、7、8、および9と互換性があります。.NET Standard 2.0および2.1に対応しています。

  3. オペレーティングシステム:Windows、macOS、Linuxで動作します。 Docker、Azure、およびAWS環境に対応。

  4. Microsoft Officeは不要: IronXLは、Microsoft OfficeやExcel Interopをインストールする必要がありません。

  5. コードエディター:Visual Studioなどの任意のVisual C#コードエディター。

インストール

Visual Studio の NuGet パッケージ マネージャーまたはパッケージ マネージャーコンソールを使用して、次のコマンドで IronXL をインストールできます。

dotnet add package IronXL.Excel --version 2024.8.5
dotnet add package IronXL.Excel --version 2024.8.5
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'dotnet add package IronXL.Excel --version 2024.8.5
VB   C#

C#でExcelワークブックを操作する方法

Excelファイルの作業を始めるには、まずVisual Studioプロジェクトを作成し、IronXLライブラリを追加しましょう。

ステップ1: Visual Studio プロジェクトを作成し、IronXL NuGet パッケージを追加する

Microsoft Visual Studioを開き、「新しいプロジェクトの作成」オプションを選択してプロジェクトの作成を開始します。

ExcelファイルをC#で操作する方法: 図1 - 新しいプロジェクト

選択したいプロジェクトテンプレートをお選びください。ここでは、簡単さのためにコンソールアプリケーションを選択しました。

C#でExcelファイルを操作する方法: 図2 - コンソールアプリ

次に、プロジェクトの名前と場所を入力してください。

C#でExcelファイルを操作する方法: 図3 - プロジェクト構成

お好みの.NET Frameworkのバージョンを選択してください。 私たちは、マシンで利用可能な最新のものを選びました。

C#でExcelファイルを操作する方法: 図4 - ターゲットフレームワーク

作成ボタンをクリックすると、プロジェクトが作成され、使用する準備が整います。 ソリューションエクスプローラーを開いてプロジェクトファイルを確認します。

C#でExcelファイルを扱う方法: 図5 - ソリューションエクスプローラー

では、上記のようにNuGetパッケージマネージャーからIronXLライブラリをインストールしましょう。

手順2: Interopを使用せずにExcelファイルを作成する

では、Microsoft Interopライブラリを使用せずにExcelファイルを作成しましょう。

using IronXL;
namespace WorkingWithIronXL
{
    public class Program
    {
        public static void Main()
        {
            // Create new Excel WorkBook Object
            WorkBook workBook = WorkBook.Create();
            // Create WorkSheet
            WorkSheet workSheet = workBook.CreateWorkSheet("newXlDemo");
            // Add data in new worksheet
            workSheet["A1"].Value = "IronXL is the best Excel library";           
            // Save the Excel file as XLSX
            workBook.SaveAs("myIronXlDemo.xlsx");
        }
    }
}
using IronXL;
namespace WorkingWithIronXL
{
    public class Program
    {
        public static void Main()
        {
            // Create new Excel WorkBook Object
            WorkBook workBook = WorkBook.Create();
            // Create WorkSheet
            WorkSheet workSheet = workBook.CreateWorkSheet("newXlDemo");
            // Add data in new worksheet
            workSheet["A1"].Value = "IronXL is the best Excel library";           
            // Save the Excel file as XLSX
            workBook.SaveAs("myIronXlDemo.xlsx");
        }
    }
}
Imports IronXL
Namespace WorkingWithIronXL
	Public Class Program
		Public Shared Sub Main()
			' Create new Excel WorkBook Object
			Dim workBook As WorkBook = WorkBook.Create()
			' Create WorkSheet
			Dim workSheet As WorkSheet = workBook.CreateWorkSheet("newXlDemo")
			' Add data in new worksheet
			workSheet("A1").Value = "IronXL is the best Excel library"
			' Save the Excel file as XLSX
			workBook.SaveAs("myIronXlDemo.xlsx")
		End Sub
	End Class
End Namespace
VB   C#

**コード説明

  1. ライブラリを使用し始めるためにIronXL名前空間を追加します。

  2. 次に、Excelオブジェクトを作成し、WorkBook.Createを使用してXLSXファイルを作成します。();

  3. 次に、CreateWorkSheetメソッドが呼び出され、ワークブック内にワークシートが作成されます。

  4. workSheetを使用してセルに値を追加する[「A1」]

  5. 次に、ファイルの名前を指定して、workBook.SaveAsを使用してExcelを保存します。

    Excelファイルを出力

    C#でExcelファイルを操作する方法: 図6 - Excel出力

ステップ 3: IronXLを使用してExcelファイルにスタイルを追加する

それでは、Excelセルにスタイルを追加する方法を見てみましょう。

using IronXL;
namespace WorkingWithIronXL
{
    public class Program
    {
        public static void Main()
         {
            // Create a new workbook
            WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
            // Create a new worksheet
            WorkSheet workSheet = workBook.CreateWorkSheet("StyledSheet");
            // Add multiple values to cells
            workSheet["A1"].Value = "This Styled Text with Awesome IronXL library";
            workSheet["A2"].Value = 999999;
            // Apply styles to cells
            workSheet["A1"].Style.Font.Bold = true;
            workSheet["A1"].Style.Font.Italic = true;
            workSheet["A1"].Style.Font.Height = 14;
            workSheet["A1"].Style.Font.Color = "#FF0000"; // Red color
            workSheet["A2"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Double;
            workSheet["A2"].Style.BottomBorder.SetColor("#00FF00"); // Green color
            // Save the workbook
            workBook.SaveAs("myIronXlWriteDemo.xlsx");
        }
    }
}
using IronXL;
namespace WorkingWithIronXL
{
    public class Program
    {
        public static void Main()
         {
            // Create a new workbook
            WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
            // Create a new worksheet
            WorkSheet workSheet = workBook.CreateWorkSheet("StyledSheet");
            // Add multiple values to cells
            workSheet["A1"].Value = "This Styled Text with Awesome IronXL library";
            workSheet["A2"].Value = 999999;
            // Apply styles to cells
            workSheet["A1"].Style.Font.Bold = true;
            workSheet["A1"].Style.Font.Italic = true;
            workSheet["A1"].Style.Font.Height = 14;
            workSheet["A1"].Style.Font.Color = "#FF0000"; // Red color
            workSheet["A2"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Double;
            workSheet["A2"].Style.BottomBorder.SetColor("#00FF00"); // Green color
            // Save the workbook
            workBook.SaveAs("myIronXlWriteDemo.xlsx");
        }
    }
}
Imports IronXL
Namespace WorkingWithIronXL
	Public Class Program
		Public Shared Sub Main()
			' Create a new workbook
			Dim workBook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
			' Create a new worksheet
			Dim workSheet As WorkSheet = workBook.CreateWorkSheet("StyledSheet")
			' Add multiple values to cells
			workSheet("A1").Value = "This Styled Text with Awesome IronXL library"
			workSheet("A2").Value = 999999
			' Apply styles to cells
			workSheet("A1").Style.Font.Bold = True
			workSheet("A1").Style.Font.Italic = True
			workSheet("A1").Style.Font.Height = 14
			workSheet("A1").Style.Font.Color = "#FF0000" ' Red color
			workSheet("A2").Style.BottomBorder.Type = IronXL.Styles.BorderType.Double
			workSheet("A2").Style.BottomBorder.SetColor("#00FF00") ' Green color
			' Save the workbook
			workBook.SaveAs("myIronXlWriteDemo.xlsx")
		End Sub
	End Class
End Namespace
VB   C#

**コード説明

  1. WorkBook.Createを使用してExcelファイルを作成する

  2. ワークシートを作成するには、workBook.CreateWorkSheet を使用します。

  3. workSheetを使用してセルに値を追加する[「A1」].Value

  4. workSheetのようにセルにプロパティを使用して各セルにスタイルを追加します。[「A1」].スタイル.フォント.ボールド

  5. workBook.SaveAs を使用してワークブックを保存します。

    出力 Excel ファイル

    C#でExcelファイルを操作する方法: 図7 - スタイル付きExcel出力

ステップ 4: Excelから値を読み取り、計算する

Excelファイルの作成方法を見たところで、IronXLを使用してExcelファイルを読み込み、メモリ内で計算を行う方法の次のコードを見てみましょう。

using IronXL;
namespace WorkingWithIronXL
{
    internal class IronXlDemo
    {
        public static void ReadData()
        {
            // Load the Excel worksheet
            WorkBook workBook = WorkBook.Load("sampleEmployeeData.xlsx");
            // Select the first worksheet
            WorkSheet workSheet = workBook.WorkSheets[0];
            // Read a specific cell value
            int cellValue = workSheet["A2"].IntValue;
            Console.WriteLine($"Value in A2: {cellValue}");
            // Read a range of cells
            foreach (var cell in workSheet["A1:H10"])
            {
                //Console.WriteLine($"Cell {cell.AddressString} has value '{cell.Text}'");
                Console.Write($"{cell.Text}\t");
                if(cell.AddressString.Contains("H"))
                {
                    Console.WriteLine();
                }
            }
            // Calculate aggregate values
            decimal sum = workSheet["F2:F10"].Sum();
            Console.WriteLine($"Sum of F2:F10: {sum}");
        }
}
using IronXL;
namespace WorkingWithIronXL
{
    internal class IronXlDemo
    {
        public static void ReadData()
        {
            // Load the Excel worksheet
            WorkBook workBook = WorkBook.Load("sampleEmployeeData.xlsx");
            // Select the first worksheet
            WorkSheet workSheet = workBook.WorkSheets[0];
            // Read a specific cell value
            int cellValue = workSheet["A2"].IntValue;
            Console.WriteLine($"Value in A2: {cellValue}");
            // Read a range of cells
            foreach (var cell in workSheet["A1:H10"])
            {
                //Console.WriteLine($"Cell {cell.AddressString} has value '{cell.Text}'");
                Console.Write($"{cell.Text}\t");
                if(cell.AddressString.Contains("H"))
                {
                    Console.WriteLine();
                }
            }
            // Calculate aggregate values
            decimal sum = workSheet["F2:F10"].Sum();
            Console.WriteLine($"Sum of F2:F10: {sum}");
        }
}
Imports Microsoft.VisualBasic
Imports IronXL
Namespace WorkingWithIronXL
	Friend Class IronXlDemo
		Public Shared Sub ReadData()
			' Load the Excel worksheet
			Dim workBook As WorkBook = WorkBook.Load("sampleEmployeeData.xlsx")
			' Select the first worksheet
			Dim workSheet As WorkSheet = workBook.WorkSheets(0)
			' Read a specific cell value
			Dim cellValue As Integer = workSheet("A2").IntValue
			Console.WriteLine($"Value in A2: {cellValue}")
			' Read a range of cells
			For Each cell In workSheet("A1:H10")
				'Console.WriteLine($"Cell {cell.AddressString} has value '{cell.Text}'");
				Console.Write($"{cell.Text}" & vbTab)
				If cell.AddressString.Contains("H") Then
					Console.WriteLine()
				End If
			Next cell
			' Calculate aggregate values
			Dim sum As Decimal = workSheet("F2:F10").Sum()
			Console.WriteLine($"Sum of F2:F10: {sum}")
		End Sub
	End Class
VB   C#

コードの説明

  1. 以下に示されているように、ここにExcelオブジェクトモデルに保存された従業員データがあります。

  2. IronXLを使用して、Excelファイルをメモリにロードし、最初のシートを読み込みます。

  3. 次に、各セルを反復処理して値を取得し、それらをコンソールに表示します。

  4. 次に、セル F2-F10 を使用して年齢の合計を計算し、それをコンソールに表示します。

    入力エクセル

    C#でExcelファイルを操作する方法: 図8 - Excel入力

    出力

    C#でExcelファイルを操作する方法: 図9 - コンソール出力

ステップ5: Web使用のためにExcelをHTMLに変換

Excelファイルを生成し、読み取り、書き込む方法を学んだので、次にExcelをウェブで使用するためにHTMLに変換する方法を見てみましょう。

using IronXL;
using IronXL.Options;
namespace WorkingWithIronXL
{
    internal class IronXlDemo
    {
        public static void ConvertToHtml()
        {
            WorkBook workBook = WorkBook.Load("sampleEmployeeData.xlsx");
            var options = new HtmlExportOptions()
            {
                // Set row/column numbers visible in HTML document
                OutputRowNumbers = true,
                OutputColumnHeaders = true,
                // Set hidden rows/columns visible in HTML document
                OutputHiddenRows = true,
                OutputHiddenColumns = true,
                // Set leading spaces as non-breaking
                OutputLeadingSpacesAsNonBreaking = true
            };
            // Export workbook to the HTML file
            workBook.ExportToHtml("workBook.html", options);
        }
}
using IronXL;
using IronXL.Options;
namespace WorkingWithIronXL
{
    internal class IronXlDemo
    {
        public static void ConvertToHtml()
        {
            WorkBook workBook = WorkBook.Load("sampleEmployeeData.xlsx");
            var options = new HtmlExportOptions()
            {
                // Set row/column numbers visible in HTML document
                OutputRowNumbers = true,
                OutputColumnHeaders = true,
                // Set hidden rows/columns visible in HTML document
                OutputHiddenRows = true,
                OutputHiddenColumns = true,
                // Set leading spaces as non-breaking
                OutputLeadingSpacesAsNonBreaking = true
            };
            // Export workbook to the HTML file
            workBook.ExportToHtml("workBook.html", options);
        }
}
Imports IronXL
Imports IronXL.Options
Namespace WorkingWithIronXL
	Friend Class IronXlDemo
		Public Shared Sub ConvertToHtml()
			Dim workBook As WorkBook = WorkBook.Load("sampleEmployeeData.xlsx")
			Dim options = New HtmlExportOptions() With {
				.OutputRowNumbers = True,
				.OutputColumnHeaders = True,
				.OutputHiddenRows = True,
				.OutputHiddenColumns = True,
				.OutputLeadingSpacesAsNonBreaking = True
			}
			' Export workbook to the HTML file
			workBook.ExportToHtml("workBook.html", options)
		End Sub
	End Class
VB   C#

**コード説明

  1. ここでは、Load メソッドを使用して Excel ファイル「sampleEmployeeData.xlsx」を読み込んでいます。

  2. 次に、HtmlExportOptionsを使用してHTMLに変換するためのオプションを設定します。

  3. 次に、ExportToHtmlメソッドを使用してHTMLに変換します

    入力

    C#でExcelファイルを操作する方法:図10 - Web用Excel入力

    出力

    C#でExcelファイルを操作する方法:図11 - HTML出力

実際の使用例

IronXLは、幅広い実際のアプリケーションに対応する多機能な.NETライブラリです。

1. ビジネスレポート:

  1. 販売概要、財務諸表、パフォーマンス指標などの定期報告書の生成を自動化すること。

  2. さまざまなソースからデータを取得し、それをExcel形式で表示するカスタムダッシュボードを作成します。

    2. データ分析:

  3. 大規模なデータセットを処理して、統計分析、データクリーニング、およびデータ変換を行います。

  4. 分析済みデータをExcelにエクスポートし、さらなる検討およびステークホルダーとの共有を行います。

    3. 在庫管理:

  5. 在庫レベル、供給業者の詳細、再注文ポイントを含むExcelシートを作成および更新して、製品の在庫を管理します。

  6. 在庫報告を生成して、在庫の動きを追跡し、トレンドを特定する。

    4. 顧客関係管理(CRM):

  7. CRMシステムからExcelに顧客データをエクスポートして、詳細な分析と報告を行います。

  8. Excelファイルから修正されたデータをインポートしてCRMレコードを更新する。

    5. 教育機関:

  9. 学生の成績表、出席記録、および進捗報告を作成し、維持する。

  10. 教師と学生のために試験結果と詳細なパフォーマンス分析を生成。

    6. 金融サービス:

  11. Excelでの財務モデル、予算、および予測の作成を自動化。

  12. 複数の情報源から財務データを統合し、包括的な財務報告を行う。

    7. 人材管理:

  13. 従業員データの管理には、連絡先の詳細、給与情報、および業績評価が含まれます。

  14. 従業員数、離職率、従業員の人口統計などの人事指標に関するレポートを作成します。

    8. プロジェクト管理:

  15. Excelシートを利用してプロジェクトのタイムライン、マイルストーン、リソース配分を追跡します。

  16. Excel内で直接ガントチャートやその他のプロジェクト管理ツールを作成する。

    9. Eコマース:

  17. eコマースプラットフォームからExcelに注文詳細、顧客情報、販売データをエクスポートする。

  18. 販売動向、顧客行動、および製品のパフォーマンスを分析します。

    10. 医療:

  19. Excelで患者記録、予約スケジュール、治療計画を管理する。

  20. 医療データを分析してパターンを特定し、患者ケアを改善する。

IronXL ライセンス

IronXLは、Iron Softwareの製品群であるIron Suiteの一部であるエンタープライズライブラリです。 実行するにはライセンスが必要です。 ユーザーは、メールIDを使用して試用ライセンスをダウンロードできます。これ. データが入力されると、ライセンスが提供されたメールIDに送信されます。 このライセンスは、以下のようにIronXLライブラリを使用する前にコードの冒頭に配置する必要があります。

License.LicenseKey = "your Key Here"
License.LicenseKey = "your Key Here"
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'License.LicenseKey = "your Key Here"
VB   C#

結論

IronXLは、Excelファイルの作成、読み取り、および編集を行うための強力な.NETライブラリで、Excelドキュメントを操作するプロセスを簡素化する直感的なAPIを提供します。 XLS、XLSX、CSVを含む幅広いExcel形式をサポートしており、さまざまな使用ケースに対応できる柔軟性があります。 IronXLは、セルの値、数式、書式設定の簡単な操作を可能にし、パフォーマンスのために最適化され、大きなファイルや複雑な操作を効率良く処理します。 その効率的なメモリ管理によりアプリケーションの応答性が保証され、クロスプラットフォームの互換性により異なるオペレーティングシステムで作業する開発者にとって貴重なツールとなります。

< 以前
C#でExcel範囲を管理する方法
次へ >
C#でExcelをSQL Serverにインポートする方法