フッターコンテンツにスキップ
IRONXLの使用

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

プログラミング言語でのMicrosoft Excelファイルの操作は、現代のプログラミングパラダイムにおいて重要な要件となっています。 Excel generation is required for automation, data analysis, measuring productivity, reports, etc. IronXL from Iron Software is a powerful C# library that allows developers to read, write, and manipulate Excel documents without needing Microsoft Excel installed on the machine in any application like web services, console, desktop, etc. This makes it an excellent choice for applications that need to handle Excel data efficiently and effectively. この記事では、IronXLを使用してC#でExcelファイルを操作する方法を探ります。

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

  1. Visual Studioプロジェクトを作成し、IronXL NuGetパッケージを追加します。
  2. Interopを使用せずにExcelファイルを作成します。
  3. IronXLを使用してExcelファイルにスタイルを追加します。
  4. Excelから値を読み取り、計算します。
  5. Web用途向けにExcelをHTMLに変換します。

IronXLライブラリの紹介

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

主要な特徴

  1. インポートとエクスポート:

    • データインポート: XLS, XLSX, CSV, TSV形式をサポート。
    • データエクスポート: ワークシートをXLS, XLSX, CSV, TSV, JSON形式にエクスポート可能。
  2. データ操作:

    • System.Data統合: スプレッドシートをSystem.Data.DataSetおよびSystem.Data.DataTableオブジェクトとして操作。
    • 数式: Excel数式をサポートしており、シートが編集されるたびに再計算されます。
  3. スタイリングと書式設定:

    • セルスタイリング: フォント、サイズ、背景パターン、境界、配置、数値の書式をカスタマイズ。
    • 範囲: WorkSheet["A1:B10"]構文で直感的な範囲設定。
  4. セキュリティ:

    • 暗号化: パスワードでXLSX, XLSM, XLTXファイルを暗号化および復号化。
  5. クロスプラットフォームの互換性:
    • .NET Framework, .NET Core, .NET Standard, Azureと互換性があります。
    • Windows, macOS, Linux, Docker, Azure, AWSに対応。

利点

  1. Microsoft Officeが不要: IronXLはMicrosoft Officeのインストールを必要とせず、軽量で展開が容易です。
  2. 使いやすさ: APIが直感的で使いやすく、開発者が迅速にExcel機能をアプリケーションに統合できます。
  3. パフォーマンス: IronXLはパフォーマンスに最適化されており、大規模なExcelファイルを高速かつ効率的に処理します。
  4. 多様性: Web、デスクトップ、クラウドベースのソリューションを含む幅広いアプリケーションに適しています。
  5. 包括的なドキュメント: 豊富なドキュメントと例が用意されているため、開発者が簡単に開始し、よくある問題への解決策を見つけることができます。

開始方法

.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などのビジュアルC#コードエディタ。

インストール

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

dotnet add package IronXL.Excel --version 2024.8.5
dotnet add package IronXL.Excel --version 2024.8.5
SHELL

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

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

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

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

C#でExcelファイルを操作する方法: 図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
$vbLabelText   $csharpLabel

コードの説明

  1. ライブラリと連携を開始するためにIronXL名前空間を追加します。
  2. WorkBook.Create()を使ってXLSXファイルを作成するExcelオブジェクトを作成します。
  3. CreateWorkSheetメソッドを呼び出してワークブック内にワークシートを作成します。
  4. workSheet["A1"].Valueを使ってセルに値を追加します。
  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
$vbLabelText   $csharpLabel

コードの説明

  1. WorkBook.Createを使ってExcelファイルを作成します。
  2. workBook.CreateWorkSheetを使ってワークシートを作成します。
  3. workSheet["A1"].Valueを使ってセルに値を追加します。
  4. セル上のプロパティを使用して、workSheet["A1"].Style.Font.Boldのように各セルにスタイルを追加します。
  5. workBook.SaveAsを使ってワークブックを保存します。

出力: Excelファイル

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

手順4: Excelから値を読み取り、計算する

Excelファイルの作成方法を見てきたので、次にIronXLを使用してExcelファイルを読み取り、メモリ内計算を実行する方法について、以下のコードを見てみましょう。

using IronXL;
using System;

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.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;
using System;

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.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
Imports System

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.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
End Namespace
$vbLabelText   $csharpLabel

コードの説明

  1. WorkBook.Loadを使用してサンプルExcelファイルをメモリにロードします。
  2. ワークブックの最初のワークシートにアクセスします。
  3. 特定のセルの値を読み取り、Console.WriteLineを使って表示します。
  4. 範囲内のセルを反復処理して、各値を出力します。 列「H」の終了部分に対して行が印刷されます。
  5. 範囲F2-F10の値の合計を計算して出力します。

入力: Excel

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

出力

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

手順5: Web用途向けにExcelをHTMLに変換する

Excelファイルの生成、読み取り、および書き込み方法を学んだ今、Web用途向けに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
End Namespace
$vbLabelText   $csharpLabel

コードの説明

  1. Loadメソッドを使用してExcelファイル「sampleEmployeeData.xlsx」をロードします。
  2. HtmlExportOptionsを使用してHTML変換オプションを設定します。
  3. ExportToHtmlメソッドを使用してワークブックをHTMLファイルとして変換および保存します。

入力

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

出力

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

実際の利用例

IronXLは、実際の幅広い用途に対応する汎用的な.NETライブラリです。

1. ビジネスレポーティング:

  • 定期的なレポート(売上概要、財務諸表、パフォーマンス指標など)の自動生成。
  • さまざまなソースからデータを取得し、Excel形式で提示するカスタムダッシュボードの作成。

2. データ分析:

  • 大量のデータセットを処理し、統計解析、データクレンジング、データ変換などを実行。
  • 分析済みデータをExcelにエクスポートし、さらなる検証やステークホルダーとの共有を行う。

3. 在庫管理:

  • 製品在庫を管理し、在庫レベル、サプライヤーの詳細、再発注点を含むExcelシートの作成と更新。
  • 在庫の動きを追跡し、トレンドを特定するための在庫レポート作成。

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

  • CRMシステムからデータをExcelにエクスポートし、詳細な分析とレポートを実行。
  • Excelファイルから修正データをインポートし、CRMレコードを更新。

5. 教育機関:

  • 学生の成績表、出席記録、および進捗レポートの作成および維持。
  • 教師と生徒向けに試験結果と詳細なパフォーマンス分析を生成。

6. 金融サービス:

  • 財務モデル、予算、予測のExcel自動作成。
  • 複数のソースから財務データを統合し、包括的な財務報告を作成。

7. 人事:

  • 従業員データ(連絡先、給与情報、パフォーマンス評価)の管理。
  • HR指標(従業員数、離職率、従業員属性)に関するレポートを生成。

8. プロジェクト管理:

  • プロジェクトタイムライン、マイルストーン、リソース配分をExcelシートで追跡。
  • Excel内でガントチャートやその他のプロジェクト管理ツールの作成。

9. Eコマース:

  • Eコマースプラットフォームから注文詳細、顧客情報、売上データをExcelにエクスポート。
  • 売上トレンド、顧客行動、製品パフォーマンスの分析。

10. 医療:

  • 患者記録、予定表、治療計画をExcelで管理。
  • 医療データを分析し、パターンを特定して患者ケアを改善。

IronXLライセンシング

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

License.LicenseKey = "your Key Here";
License.LicenseKey = "your Key Here";
License.LicenseKey = "your Key Here"
$vbLabelText   $csharpLabel

結論

IronXLは、Excelドキュメントの操作を簡素化する直感的なAPIを提供し、Excelファイルの作成、読み取り、編集のための強力な.NETライブラリです。 XLS、XLSX、CSVなどの幅広いExcel形式に対応しており、さまざまなユースケースに対応できる柔軟性を提供します。 IronXLは、セル値、数式、フォーマットの容易な操作を可能にし、パフォーマンスに最適化され、大規模なファイルと複雑な操作を効率的に処理します。 効率的なメモリ管理により、レスポンシブなアプリケーションを保証し、そのクロスプラットフォーム互換性により、さまざまなOSでの開発者にとって貴重なツールとなっています。

よくある質問

Microsoft Excel がインストールされていない場合に、C# で Excel ファイルを操作するにはどうすればよいですか?

Iron ソフトウェアから提供される C# ライブラリ「IronXL」を使用して、Microsoft Excel を必要とせずに Excel ドキュメントを読み書きおよび操作できます。XLS、XLSX、CSV などのさまざまな形式をサポートしており、Web サービス、デスクトップ、コンソールなどのアプリケーションで使用できます。

C# で Excel を操作するための Visual Studio プロジェクトのセットアップにはどのような手順が含まれますか?

C# で Excel を操作するための Visual Studio プロジェクトをセットアップするには、NuGet パッケージ マネージャーを介して IronXL をインストールします。ライブラリをプロジェクトに追加するには、パッケージ マネージャー コンソールで次のコマンドを使用します: dotnet add package IronXL.Excel --version 2024.8.5

C# で Excel ファイルに計算を実行できますか?

はい、IronXL を使用すると、Excel ファイルで計算を実行できます。このライブラリは Excel の数式をサポートしており、C# アプリケーション内で計算を自動化できます。

C# を使用して Excel ファイルを HTML に変換するにはどうすればよいですか?

IronXL は、Excel ファイルを HTML に変換するための ExportToHtml メソッドを提供します。このメソッドは、HTML 出力が要件を満たすようにカスタマイズ オプションを提供します。

C# での Excel ファイル操作に IronXL を使用する利点は何ですか?

IronXL は使いやすさ、直感的な API、大きな Excel ファイルを扱うための最適化されたパフォーマンス、およびさまざまなアプリケーションに対する汎用性を提供します。また、そのクロスプラットフォーム互換性と包括的なドキュメントにより、利便性が向上します。

IronXL を使用して Excel のセルに高度なスタイルを適用できますか?

はい、IronXL を使用すると、フォント、サイズ、色、境界、配置などをカスタマイズすることで、Excel のセルに高度なスタイルを適用できます。

IronXL はクロスプラットフォームの Excel ファイル操作に適していますか?

はい、IronXL はクロスプラットフォーム用に設計されており、Windows、macOS、Linux、Docker、Azure、AWS などの環境に対応しているため、多様な展開シナリオに最適です。

C# で IronXL を使用して Excel ファイルからセルの値を読み取るにはどうすればよいですか?

IronXL を使用すると、WorkBook.Load を使用してファイルを読み込み、ワークシートを選択し、アドレスを使用して特定のセル値または範囲にアクセスすることで、Excel ファイルからセルの値を読み取ることができます。

C# で Excel ファイルを処理するための IronXL の強力な点は何ですか?

IronXL は、複数の形式 (XLS、XLSX、CSV) のサポート、数式とスタイリング機能、セキュリティのための暗号化、および異なるオペレーティング システム全体で大規模なファイルを効率的に処理できる能力により、強力です。

Curtis Chau
テクニカルライター

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

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。