IRONXLの使用

C#を使用してExcelのセルを自動調整する方法

リーガン・パン
リーガン・パン
2024年4月29日
共有:

イントロダクション

今日のデータ主導の世界において、Microsoft Excelは企業や専門家にとって不可欠なツールであり続けます。数字の計算、レポートの作成、データの可視化に至るまで、Excelの多用途性は他に類を見ません。 しかし、C#でプログラム的にExcelファイルを操作する場合、開発者はしばしば困難に直面します。 ここでIronXLライブラリが登場し、C#環境内でのExcel自動化のシームレスなソリューションを提供します。

IronXL ライブラリは、Iron Software によって提供されており、C# .NET および VB.NET 環境で Excel ドキュメントをシームレスに処理する直感的なAPIを提供します。 IronXL を使用すると、Microsoft Office や Excel Interop コンポーネントをインストールする必要はありません。 これは、開発者がExcelスプレッドシートファイルを簡単に読み取り、編集し、作成することを可能にし、.NET 8、7、6、Core Frameworks、およびAzure環境を含むさまざまな.NETフレームワークを完全にサポートします。

この記事では、C#とIronXLを使用してExcelの列幅と行高さを自動調整する方法を学びます。

1. Excel ワークシートでセルを自動調整するデモ用にVisual Studioプロジェクトを作成します。

  1. プロジェクトにIronXLライブラリーをインストールします。

  2. IronXLライブラリを使用して列の幅を自動調整します。

  3. IronXLライブラリを使用して行の高さを自動調整する。

  4. IronXL ライブラリを使用して、列の幅と行の高さを手動で設定します。

IronXL

IronXL ライブラリは、C#開発者向けにExcelスプレッドシートの操作を簡素化するために設計された多用途の.NETライブラリです。 高速かつ直感的なAPIを提供するIronXLは、Office Interopに頼ることなく、ユーザーがExcelファイルに簡単にアクセス、修正、生成できるようにします。その互換性は、特別な依存関係やMicrosoft Officeのインストールを必要とせず、.NET CoreやAzureを含むさまざまな.NETフレームワークにまで及びます。C#、VB.NET、F#など、複数の.NET言語をサポートしており、IronXLはコンソール、ウェブ、デスクトップアプリケーションを含む多様な開発シナリオに対応できます。 さらに、IronXLの互換性はWindows、Linux、macOS、Docker、Azure、AWSなどさまざまなプラットフォームにわたるため、多様な環境で効率的なExcel統合を求める開発者にとって不可欠なツールとなります。

IronXLライブラリの主な機能

  1. 簡単な統合IronXLはC#アプリケーションとシームレスに統合し、Excel自動化のためのシンプルで直感的なAPIを提供します。 開発者は、最小限の学習曲線で迅速に開始することができます。

  2. Excelファイルの読み書き: IronXLを使用すれば、既存のExcelファイルからデータを簡単に読み取り、新規または既存のスプレッドシートにデータを書き込むことができます。 この機能は、データのインポート/エクスポートやレポート生成といったタスクに不可欠です。

  3. フォーマットとスタイリング: IronXLを使用すると、フォント、色、ボーダーなどを含むExcelセルにフォーマットとスタイリングを適用することができます。 これにより、生成されたExcelファイルがプロフェッショナルで洗練された外観を保つことができます。

  4. Formula Support: Excelデータに対して複雑な計算を実行したり、数式を適用したりする必要がありますか? IronXLはExcelの数式をサポートしており、計算やデータ操作を自動化することができます。

  5. セルの自動調整: IronXL によって提供される便利な機能の一つに、Excel のセルを自動調整する機能があります。これにより、各セル内に内容を切り捨てずにきれいに収まることが保証されます。

ステップ1: ExcelワークシートでセルのオートフィットをデモするためにVisual Studioプロジェクトを作成します。

始めに、以下のようにVisual Studioプロジェクトを作成しましょう。 リストからコンソール アプリケーション テンプレートを選択します

Excelでセルを自動調整する方法: 図1 - Visual Studioを開き、C#でコンソールアプリケーションの新しいプロジェクトを追加します。

プロジェクト名と場所を提供してください

Excelでセルをオートフィットする方法(C#を使用): 図2 - 次に、プロジェクト名と場所を指定します。

必要な .NET バージョンをドロップダウンから選択し、「作成」をクリックしてください。

C#を使用してExcelのセルを自動調整する方法: 図3 - 次に、必要な.NET Frameworkバージョンを選択し、「作成」をクリックします。

ステップ2:プロジェクトにIronXLライブラリをインストールする。

Visual StudioのNuGetパッケージマネージャーからIronXLライブラリをインストール

C#を使用してExcelのセルを自動調整する方法: 図4 - NuGetパッケージマネージャの検索バーで「IronXL」を検索し、プロジェクトを選択してインストールボタンをクリックすることで、ソリューションのNuGetパッケージの管理を使用してIronXLをインストールします。

このパッケージは、NuGet コマンドラインを使用してインストールすることもできます。

dotnet add package IronXL.Excel --version 2024.3.20
// or
Install-Package IronXL.Excel
dotnet add package IronXL.Excel --version 2024.3.20
// or
Install-Package IronXL.Excel
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'dotnet add package IronXL.Excel --version 2024.3.20 Install-Package IronXL.Excel
$vbLabelText   $csharpLabel

C#を使用してExcelのセルを自動調整する方法: 図5 - IronXL.Excel NuGetパッケージ

これでコードの記述を開始する準備が整いました。

ステップ3: IronXLライブラリを使用して列の幅を自動調整する

AutoSizeColumn メソッドは、IronXL ライブラリから取得され、列の内容に合うようにその幅を調整します。 このメソッドは、セルに使用されているフォントに基づいてテキストの幅を計算します。 システムに該当のフォントが存在しない場合、デフォルトフォントを使用して測定を試みます。 デフォルトのフォントが見つからない場合、利用可能なフォントを使用しようとします。 しかし、フォントが見つからない場合は、例外がスローされます。 それはパラメータとしてゼロベースの列インデックスを使用します。 0と(ColumnCount - 1)で定義される範囲内でなければなりません。 ArgumentException は、指定された columnIndex が有効な範囲外の場合にスローされます。 SixLabors.Fonts.FontExceptionは、マシンにフォントがインストールされていない場合にスローされます。

では、これを使ってExcelファイルのサイズを変更する方法を見てみましょう。サンプルのExcelファイルはこちらからダウンロードできます。

入力ファイル

ここでは、列の幅が適切に定義されておらず、非常に読みづらくなっています。 次に行きましょう

IronXLライブラリを使用して、Excelシートの列幅を自動調整する方法をご覧ください。

C#を使用してExcelのセルを自動調整する方法: 図6 - 入力Excelファイル

using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
var colCount = workSheet.Columns.Count();
for (int i = 0; i < colCount; i++)
{ 
    // auto fit column width for index i
    workSheet.AutoSizeColumn(i);
}
workBook.SaveAs("autoResize.xlsx"); // result file
using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
var colCount = workSheet.Columns.Count();
for (int i = 0; i < colCount; i++)
{ 
    // auto fit column width for index i
    workSheet.AutoSizeColumn(i);
}
workBook.SaveAs("autoResize.xlsx"); // result file
Imports IronXL
' Load example spreadsheet
Private workBook As WorkBook = WorkBook.Load("FinancialSample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
Private colCount = workSheet.Columns.Count()
For i As Integer = 0 To colCount - 1
	' auto fit column width for index i
	workSheet.AutoSizeColumn(i)
Next i
workBook.SaveAs("autoResize.xlsx") ' result file
$vbLabelText   $csharpLabel

コードの説明

  1. 最初に、WorkBook.Load() メソッドを使用して FinancialSample.xlsx を読み込みます。

  2. 次に、列の幅を調整する必要があるセル範囲を取得します。この場合、列の数を取得します。

  3. 次に、すべてのインデックスを反復処理して列の幅を自動調整します。

  4. 次に、結果を autoResize.xlsx という名前の新しいファイルに保存します。

出力ファイル

以下では、すべての列が自動サイズで表示されています。

C# を使用して Excel のセルに自動フィットする方法: 図 7 - 自動サイズ設定された列幅の出力Excel。

ステップ4:IronXLライブラリを使用して行の高さを自動調整します。

AutoSizeRow メソッドは、内容に合わせて行の高さを調整します。 このメソッドは、セル内で使用されているフォントに基づいてテキストの高さを計算することに注意することが重要です。 システムに該当のフォントが存在しない場合、デフォルトフォントを使用して測定を試みます。 デフォルトのフォントが見つからない場合、利用可能なフォントを使用しようとします。 しかし、フォントが見つからない場合は、例外がスローされます。 それはゼロベースの行インデックスをパラメーターとして使用します。 それは0と(RowCount - 1)で定義された範囲内でなければなりません。 ArgumentException は、指定された rowIndex が有効範囲外の場合にスローされます。 マシンにフォントがインストールされていない場合、SixLabors.Fonts.FontException がスローされます。

インプット Excel ファイル

以下の例では、いくつかの行がデータに適切に合うようにサイズ調整されていないことがわかります。 次に、Excelの行の高さを自動調整するためのC#コードを見てみましょう。

Excelでセルをオートフィットする方法:図8 - 入力Excelファイル

using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
var rowCount = workSheet.RowCount;
for (int i = 0; i < rowCount; i++)
{
    workSheet.AutoSizeRow(i);
}
workBook.SaveAs("autoResizeRows.xlsx"); // result file
using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
var rowCount = workSheet.RowCount;
for (int i = 0; i < rowCount; i++)
{
    workSheet.AutoSizeRow(i);
}
workBook.SaveAs("autoResizeRows.xlsx"); // result file
Imports IronXL
' Load example spreadsheet
Private workBook As WorkBook = WorkBook.Load("FinancialSample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
Private rowCount = workSheet.RowCount
For i As Integer = 0 To rowCount - 1
	workSheet.AutoSizeRow(i)
Next i
workBook.SaveAs("autoResizeRows.xlsx") ' result file
$vbLabelText   $csharpLabel

コードの説明

  1. 最初に、WorkBook.Load() メソッドを使用して FinancialSample.xlsx をロードします。

  2. 次に、行の高さを調整する必要があるセル範囲を取得します。この場合、行数を取得します。

  3. 次に、すべてのインデックスを反復処理して行の高さを自動調整します。

  4. 新しいファイル名 autoResizeRows.xlsx として結果を保存します。

Excelファイルの出力

Excelでセルを自動調整する方法C#: 図9 - 自動サイズ調整された列の高さを持つ出力Excel。

ステップ 5: IronXL を使用して列の幅と行の高さを手動で設定する

行と列の自動サイズ調整に加えて、IronXL では、特定の行の高さ値および特定の列の幅値に手動で幅と高さを調整することもできます。

インプット Excel ファイル

C#を使用してExcelのセルを自動調整する方法: 図10 - 入力Excelファイル

using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
RangeRow row = workSheet.GetRow(0);
row.Height = 500; // Set height
RangeColumn col = workSheet.GetColumn(0);
col.Width = 5000; // Set width
workBook.SaveAs("specificValue.xlsx");
using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
RangeRow row = workSheet.GetRow(0);
row.Height = 500; // Set height
RangeColumn col = workSheet.GetColumn(0);
col.Width = 5000; // Set width
workBook.SaveAs("specificValue.xlsx");
Imports IronXL
' Load example spreadsheet
Private workBook As WorkBook = WorkBook.Load("FinancialSample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
Private row As RangeRow = workSheet.GetRow(0)
row.Height = 500 ' Set height
Dim col As RangeColumn = workSheet.GetColumn(0)
col.Width = 5000 ' Set width
workBook.SaveAs("specificValue.xlsx")
$vbLabelText   $csharpLabel

コードの説明

  1. 最初に、WorkBook.Load() 関数を使用して FinancialSample.xlsx を読み込みます。

  2. 次に、行の高さを調整するためのセル範囲と、列の幅を調整するためのセル範囲を取得します。

  3. 次に、高さと幅の値を設定します。

  4. 次に、結果を特定の名前specificValue.xlsxの新しいファイルに保存します。

Excelファイルの出力

C#を使用してExcelのセルを自動調整する方法: 図11 - 手動でサイズを指定した列の幅と高さの出力エクセル。

ライセンス

IronXL.

取得したライセンスは、appSettings.jsonファイルに配置する必要があります。

{
  "IronXL.License.LicenseKey":"myTrialKey"
}
{
  "IronXL.License.LicenseKey":"myTrialKey"
}
If True Then
  "IronXL.License.LicenseKey":"myTrialKey"
End If
$vbLabelText   $csharpLabel

結論

IronXLAutoSizeColumnAutoSizeRowのような機能を使用すると、開発者はインポートされたデータ、動的レポート、ユーザー生成コンテンツ、またはデータ分析結果など、含まれているコンテンツに応じてExcelスプレッドシートが動的に調整されることを簡単に実現できます。

IronXL の .NET Core や Azure を含む様々な .NET フレームワークとの互換性により、開発者は Microsoft Office や Excel Interop に依存することなく、幅広いアプリケーションに Excel 自動化を組み込むことができます。さらに、IronXL は複数の .NET 言語とプラットフォームをサポートしているため、多様な環境で Excel 操作タスクを効率化しようとする開発者にとって柔軟な選択肢となります。

本質的に、IronXL は開発者に Excel 自動化プロジェクトにおける生産性、正確性、柔軟性を向上させる力を与え、現代の C# 開発のニーズに応える包括的な機能を提供します。 レポートの生成、データの分析、情報の提示のいずれでも、IronXLはC#エコシステム内でのExcel自動化において成功するために必要なツールを提供します。

リーガン・パン
ソフトウェアエンジニア
レーガンはリーディング大学で電子工学の学士号を取得しました。Iron Softwareに入社する前の仕事では、一つのタスクに集中して取り組んでいました。Iron Softwareでは、営業、技術サポート、製品開発、マーケティングのいずれにおいても広範な業務に携わることが最も楽しいと感じています。彼は、Iron Softwareライブラリを開発者がどのように使用しているかを理解し、その知識を使ってドキュメントを継続的に改善し、製品を開発することを楽しんでいます。
< 以前
C#でExcelをSQL Serverにインポートする方法
次へ >
PythonでExcelファイルを解析する方法