C#\u3092\u4f7f\u7528\u3057\u3066Excel\u306e\u30bb\u30eb\u3092\u81ea\u52d5\u8abf\u6574\u3059\u308b\u65b9\u6cd5
今日のデータ駆動型の世界では、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、.NET Core Frameworkのほか、Azure環境もフルサポートしています。
この配信では、C#とIronXLを使用してExcelで列幅と高さを自動調整する方法を学びます。
- Visual Studioプロジェクトを作成して、Excelワークシートのオートフィットセルをデモします。
- プロジェクトにIronXLライブラリをインストールします。
- IronXLライブラリを使って列の幅を自動調整します。
- IronXLライブラリを使って行の高さを自動調整します。
- IronXLライブラリを使って手動で列の幅と行の高さを設定します。
IronXL
IronXLライブラリは、C#開発者のためにExcelスプレッドシートの操作を簡素化するために設計された多用途 for .NETライブラリです。 迅速で直感的なAPIを提供し、IronXLは、Office Interopに依存せずにExcelファイルに迅速にアクセスし、修正し、生成することを可能にします。その互換性は、.NET CoreおよびAzureを含む様々な.NETフレームワークまで広がり、特別な依存関係やMicrosoft Officeのインストールを必要としません。C#、VB.NET、F#などの複数 for .NET言語をサポートし、コンソール、ウェブ、デスクトップアプリケーションを含む幅広い開発シナリオに対応しています。 さらに、IronXLの互換性は、Windows、Linux、macOS、Docker、Azure、およびAWSを含む様々なプラットフォームを超えて広がり、多様な環境で効率的なExcel統合を求める開発者にとって、不可欠なツールとなっています。
IronXLライブラリの主な機能
1.簡単な統合: IronXLはC#アプリケーションとシームレスに統合し、Excel自動化のためのシンプルで直感的なAPIを提供します。 開発者は最小限の学習曲線で迅速に始めることができます。
- Excelファイルの読み書き: IronXLを使用すると、既存のExcelファイルからデータを簡単に読み込み、新規または既存のスプレッドシートにデータを書き込むことができます。 この機能は、データのインポート/エクスポートやレポートの生成などのタスクに不可欠です。 3.書式設定とスタイル設定: IronXLを使用すると、フォント、色、罫線など、Excelのセルに書式設定とスタイル設定を適用できます。 これにより、生成されたExcelファイルがプロフェッショナルで洗練された外観を維持します。 4.数式サポート:複雑な計算を実行したり、Excelデータに数式を適用したりする必要がありますか? IronXLは、Excelの数式のサポートを備えており、計算やデータ操作の自動化を可能にします。 5.セルの自動調整: IronXLが提供する便利な機能の1つは、Excelのセルを自動調整する機能です。これにより、コンテンツが切り捨てられることなく、各セル内にきれいに収まるようになります。
ステップ1: ExcelワークシートのオートフィットセルをデモするためのVisual Studioプロジェクトの作成
始めるには、以下に示すようにVisual Studioプロジェクトを作成します。 リストからコンソールアプリケーションテンプレートを選択します

プロジェクト名と場所を指定します

ドロップダウンから必要な.NETバージョンを選択し、作成をクリックします
![C# を使用して Excel でセルを自動調整する方法: 図 3 - 次に、必要な.NET Frameworkバージョンを選択し、[作成] をクリックします。](/static-assets/excel/blog/how-to-autofit-cells-excel-using-csharp/how-to-autofit-cells-excel-using-csharp-3.webp)
ステップ2: プロジェクトにIronXLライブラリをインストールする
Visual Studioの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

これで、コーディングを始める準備が整いました。
ステップ3: IronXLライブラリを使用して列の幅を自動調整する
IronXLライブラリのAutoSizeColumnメソッドは、列の幅をその内容に合わせて調整します。 このメソッドは、セルに使用されるフォントに基づいてテキストの幅を計算します。 システムに正確なフォントがない場合は、デフォルトのフォントを使用して測定を試みます。 デフォルトフォントが見つからない場合、利用可能な任意のフォントを使用しようとします。 ただし、フォントが見つからない場合は例外がスローされます。 ゼロベースの列インデックスをパラメータとして使用します。 これは0と(ColumnCount - 1)の間にある必要があります。 指定された columnIndex が有効範囲外の場合、ArgumentException がスローされます。 SixLabors.Fonts.FontException は、マシンにフォントがインストールされていない場合に発生します。
次に、Excelファイルのサイズを変更する方法を見てみましょう。サンプルExcelファイルをこちらからダウンロードできます。
入力ファイル
ここでは、列の幅が正しく定義されていないため、非常に読みづらいことがわかります。 では IronXLライブラリを使って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);
}
// Save the autofitted workbook as a new file
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);
}
// Save the autofitted workbook as a new file
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
' Save the autofitted workbook as a new file
workBook.SaveAs("autoResize.xlsx") ' Result file
コードの説明
- 最初に、
WorkBook.Load()メソッドを使用して FinancialSample.xlsx を読み込みます。 - 調整のための列の数を取得します。
- 全ての列インデックスをイテレートして、列幅を自動調整します。
- 最後に、結果を
autoResize.xlsxという名前の新しいファイルに保存します。
出力ファイル
以下のように、全ての列が自動調整されており、見やすくなっています。

ステップ4: IronXLライブラリを使用して行の高さを自動調整する
AutoSizeRow メソッドは、行の高さを調整してその内容に対応します。 このメソッドは、セルに使用されるフォントに基づいてテキストの高さを計算することに注意が必要です。 システムに正確なフォントがない場合は、デフォルトのフォントを使用して測定を試みます。 デフォルトフォントが見つからない場合、利用可能な任意のフォントを使用しようとします。 ただし、フォントが見つからない場合は例外がスローされます。 ゼロベースの行インデックスをパラメータとして使用します。 これは0と(RowCount - 1)の間にある必要があります。 指定された rowIndex が有効範囲外の場合、ArgumentException がスローされます。 SixLabors.Fonts.FontException は、マシンにフォントがインストールされていない場合に発生します。
入力Excelファイル
以下の例では、いくつかの行がデータに適していないサイズになっていることがわかります。 今度はC#コードを見て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++)
{
// Auto-fit row height for index i
workSheet.AutoSizeRow(i);
}
// Save the autofitted workbook as a new file
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++)
{
// Auto-fit row height for index i
workSheet.AutoSizeRow(i);
}
// Save the autofitted workbook as a new file
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
' Auto-fit row height for index i
workSheet.AutoSizeRow(i)
Next i
' Save the autofitted workbook as a new file
workBook.SaveAs("autoResizeRows.xlsx") ' Result file
コードの説明
- 最初に、
WorkBook.Load()メソッドを使用して FinancialSample.xlsx を読み込みます。 - 総行数を取得します。
- 全ての行インデックスをイテレートして、行の高さを自動調整します。
- 最後に、結果を
autoResizeRows.xlsxという名前の新しいファイルに保存します。
出力Excelファイル

ステップ5: IronXLを使って列の幅と行の高さを手動設定する
行と列を自動サイズ調整する以外に、IronXLは特定の行の高さ値と特定の列の幅値に手動で調整するオプションも提供します。
入力Excelファイル

using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Manually set row height and column width
RangeRow row = workSheet.GetRow(0);
row.Height = 500; // Set height
RangeColumn col = workSheet.GetColumn(0);
col.Width = 5000; // Set width
// Save the workbook with specific values set
workBook.SaveAs("specificValue.xlsx");
using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Manually set row height and column width
RangeRow row = workSheet.GetRow(0);
row.Height = 500; // Set height
RangeColumn col = workSheet.GetColumn(0);
col.Width = 5000; // Set width
// Save the workbook with specific values set
workBook.SaveAs("specificValue.xlsx");
Imports IronXL
' Load example spreadsheet
Private workBook As WorkBook = WorkBook.Load("FinancialSample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
' Manually set row height and column width
Private row As RangeRow = workSheet.GetRow(0)
row.Height = 500 ' Set height
Dim col As RangeColumn = workSheet.GetColumn(0)
col.Width = 5000 ' Set width
' Save the workbook with specific values set
workBook.SaveAs("specificValue.xlsx")
コードの説明
WorkBook.Load()関数を使用して FinancialSample.xlsx を読み込みます。- 高さと幅を手動で調整する特定の行と列を取得します。
- 希望の高さおよび幅の値を設定します。
- 変更したファイルを
specificValue.xlsxという名前で保存します。
出力Excelファイル

ライセンス
無料トライアルを取得して、IronXLの機能を30日間自由に使用してください。
取得されるライセンスはappSettings.jsonファイルに配置する必要があります。
{
"IronXL.License.LicenseKey": "myTrialKey"
}
結論
IronXLの AutoSizeColumn や AutoSizeRow などの機能を使用すると、開発者は、インポートされたデータ、動的なレポート、ユーザーが生成したコンテンツ、データ分析結果など、Excel スプレッドシートに含まれるコンテンツに合わせて、スプレッドシートが動的に調整されるように簡単にすることができます。
IronXLは、.NET CoreやAzureを含む様々な.NETフレームワークとの互換性を持ち、開発者がMicrosoft OfficeやExcel Interopに依存せずに、様々なアプリケーションにExcel自動化を組み込むことができるようになっています。さらに、IronXLは複数 for .NET言語とプラットフォームをサポートしているため、多様な環境でExcel操作タスクを効率化したい開発者にとって多用途な選択肢となっています。
本質的に、IronXLは、現代のC#開発の要求に応える包括的な機能群を提供し、Excel自動化プロジェクトでの生産性、正確性、柔軟性を向上させることで、開発者を支援します。 レポートの生成、データ分析、情報の提示など、さまざまな用途に対応できるツールを提供するIronXLで、C#エコシステム内でのExcel自動化において成功を収めることができます。
よくある質問
C#を使用してExcelのセルを自動調整する方法は?
C#を使用してExcelのセルを自動調整するには、IronXLのAutoSizeColumnとAutoSizeRowメソッドを利用してください。これにより、列幅と行高さがコンテンツに合わせて自動的に調整されます。
Excelの自動化に.NETライブラリを使用する利点は何ですか?
IronXLのような.NETライブラリをExcelの自動化に使用することで、Microsoft Officeインストールを必要とせずに、Excelファイルの読み取り、書き込み、フォーマットといったタスクが簡素化されます。これにより、C#アプリケーションでの生産性と正確性が向上します。
C#を使用してExcelの列幅と行高さを手動で調整するには?
IronXLを使用すると、GetColumnやGetRowメソッドを使って特定の列や行を対象にし、そのWidthおよびHeightプロパティを設定することで、列幅と行高さを手動で調整できます。
IronXLは.NET Coreプロジェクトと互換性がありますか?
はい、IronXLは完全に.NET Coreプロジェクトと互換性があり、開発者が現代 for .NET環境でExcelの自動化機能をシームレスに統合できます。
IronXL を .NET プロジェクトにインストールするにはどうすればいいですか?
IronXLを.NETプロジェクトにインストールするには、Visual StudioのNuGetパッケージマネージャを使用するか、コマンドラインでdotnet add package IronXL.Excelコマンドを実行します。
私のマシンにExcelがインストールされていなくてもIronXLを使用できますか?
はい、IronXLを使用すると、Microsoft Excelをマシンにインストールすることなく、C#でExcelファイルをプログラムで操作できます。
セルを自動調整する際にフォント例外が発生した場合、どうすればよいですか?
セルを自動調整する際にSixLabors.Fonts.FontExceptionが発生した場合、IronXLがテキストの寸法を計算するために必要なフォントがシステム上にあることを確認してください。
IronXLはどのように複数 for .NET言語をサポートしていますか?
IronXLはC#、VB.NET、F#などの複数 for .NET言語をサポートしており、異なるプログラミング環境で作業する開発者に柔軟性と利便性を提供します。
プロジェクトにIronXLライセンスキーをどこに追加しますか?
IronXLライセンスキーは、プロジェクトのappSettings.jsonファイル内のキー'IronXL.License.LicenseKey'の下に追加してプレミアム機能を有効化します。
Excel自動化におけるIronXLの主な機能は何ですか?
IronXLは、C#アプリケーションとの簡単な統合、Excelファイルの読み取りと書き込み、フォーマットの適用、Excel数式のサポート、およびコンテンツ表示の最適化のためのセルの自動調整といった主要な機能を提供します。



