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

{"8":"C#\u3092\u4f7f\u7528\u3057\u3066Excel\u306e\u30bb\u30eb\u3092\u81ea\u52d5\u8abf\u6574\u3059\u308b\u65b9\u6cd5<\/S>"}

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

IronXL library from 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で列幅と高さを自動調整する方法を学びます。

  1. Visual Studioプロジェクトを作成して、Excelワークシートのオートフィットセルをデモします。
  2. プロジェクトにIronXLライブラリをインストールします。
  3. IronXLライブラリを使って列の幅を自動調整します。
  4. IronXLライブラリを使って行の高さを自動調整します。
  5. IronXLライブラリを使って手動で列の幅と行の高さを設定します。

IronXL

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

IronXLライブラリの主な機能

  1. 簡単な統合: IronXLはC#アプリケーションとシームレスに統合し、Excel自動化のためのシンプルで直感的なAPIを提供します。 開発者は最小限の学習曲線で迅速に始めることができます。
  2. Excelファイルの読み書き: IronXLを使用すると、既存のExcelファイルからデータを簡単に読み取ったり、新規または既存のスプレッドシートにデータを書き込むことができます。 この機能は、データのインポート/エクスポートやレポートの生成などのタスクに不可欠です。
  3. フォーマットとスタイル設定: IronXLは、フォント、色、ボーダーなどを含むExcelセルへのフォーマットとスタイル設定を可能にします。 これにより、生成されたExcelファイルがプロフェッショナルで洗練された外観を維持します。
  4. 数式サポート: 複雑な計算を実行したり、Excelデータに数式を適用する必要がありますか? IronXLは、Excelの数式のサポートを備えており、計算やデータ操作の自動化を可能にします。
  5. オートフィットセル: IronXLが提供する便利な機能の1つは、Excelでセルを自動調整できることで、コンテンツがセル内にきちんと収まるようにすることができます。

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

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

How to Autofit Cells in Excel Using C#: 図1 - Visual Studioを開き、C#でコンソールアプリケーションタイプの新しいプロジェクトを追加します。

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

How to Autofit Cells in Excel Using C#: 図2 - 次に、プロジェクト名と場所を指定します。

ドロップダウンから必要な.NETバージョンを選択し、作成をクリックします

How to Autofit Cells in Excel Using C#: 図3 - 次に、必要な.NET Frameworkバージョンを選択し、作成をクリックします。

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

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

How to Autofit Cells in Excel Using C#: 図4 - NuGet Package Managerの検索バーで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
SHELL

How to Autofit Cells in Excel Using C#: 図5 - IronXL.Excel NuGetパッケージ

これで、コーディングを始める準備が整いました。

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

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

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

入力ファイル

ここでは、列の幅が正しく定義されていないため、非常に読みづらいことがわかります。 では IronXLライブラリを使ってExcelシートの列幅を自動調整する方法を見てみましょう。

How to Autofit Cells in Excel Using C#: 図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);
}

// 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
$vbLabelText   $csharpLabel

コードの説明

  1. 初めに、WorkBook.Load()メソッドを使用してFinancialSample.xlsxをロードします。
  2. 調整のための列の数を取得します。
  3. 全ての列インデックスをイテレートして、列幅を自動調整します。
  4. 最後に、autoResize.xlsxという新しいファイルに結果を保存します。

出力ファイル

以下のように、全ての列が自動調整されており、見やすくなっています。

How to Autofit Cells in Excel Using C#: 図7 - 自動サイズ調整された列幅を持つ出力Excel

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

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

入力Excelファイル

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

How to Autofit Cells in Excel Using C#: 図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++)
{
    // 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
$vbLabelText   $csharpLabel

コードの説明

  1. 初めに、WorkBook.Load()メソッドを使用してFinancialSample.xlsxをロードします。
  2. 総行数を取得します。
  3. 全ての行インデックスをイテレートして、行の高さを自動調整します。
  4. 最後に、autoResizeRows.xlsxという新しいファイルに結果を保存します。

出力Excelファイル

How to Autofit Cells in Excel Using C#: 図9 - 自動サイズ調整された行の高さを持つ出力Excel

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

行と列を自動サイズ調整する以外に、IronXLは特定の行の高さ値と特定の列の幅値に手動で調整するオプションも提供します。

入力Excelファイル

How to Autofit Cells in Excel Using C#: 図10 - 入力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")
$vbLabelText   $csharpLabel

コードの説明

  1. WorkBook.Load()関数を使ってFinancialSample.xlsxをロードします。
  2. 高さと幅を手動で調整する特定の行と列を取得します。
  3. 希望の高さおよび幅の値を設定します。
  4. 修正されたファイルをspecificValue.xlsxという名前で保存します。

出力Excelファイル

How to Autofit Cells in Excel Using C#: 図11 - 手動調整されたサイズの列幅と高さを持つ出力Excel

ライセンス

無料トライアルを取得して、IronXLの機能を30日間自由に使用してください。

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

{
  "IronXL.License.LicenseKey": "myTrialKey"
}

結論

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

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

本質的に、IronXLは、現代のC#開発の要求に応える包括的な機能群を提供し、Excel自動化プロジェクトでの生産性、正確性、柔軟性を向上させることで、開発者を支援します。 レポートの生成、データ分析、情報の提示など、さまざまな用途に対応できるツールを提供するIronXLで、C#エコシステム内でのExcel自動化において成功を収めることができます。

よくある質問

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

C#を使用してExcelのセルを自動調整するには、IronXLのAutoSizeColumnAutoSizeRowメソッドを利用してください。これにより、列幅と行高さがコンテンツに合わせて自動的に調整されます。

Excelの自動化に.NETライブラリを使用する利点は何ですか?

IronXLのような.NETライブラリをExcelの自動化に使用することで、Microsoft Officeインストールを必要とせずに、Excelファイルの読み取り、書き込み、フォーマットといったタスクが簡素化されます。これにより、C#アプリケーションでの生産性と正確性が向上します。

C#を使用してExcelの列幅と行高さを手動で調整するには?

IronXLを使用すると、GetColumnGetRowメソッドを使って特定の列や行を対象にし、そのWidthおよびHeightプロパティを設定することで、列幅と行高さを手動で調整できます。

IronXLは.NET Coreプロジェクトと互換性がありますか?

はい、IronXLは完全に.NET Coreプロジェクトと互換性があり、開発者が現代の.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はどのように複数の.NET言語をサポートしていますか?

IronXLはC#、VB.NET、F#などの複数の.NET言語をサポートしており、異なるプログラミング環境で作業する開発者に柔軟性と利便性を提供します。

プロジェクトにIronXLライセンスキーをどこに追加しますか?

IronXLライセンスキーは、プロジェクトのappSettings.jsonファイル内のキー'IronXL.License.LicenseKey'の下に追加してプレミアム機能を有効化します。

Excel自動化におけるIronXLの主な機能は何ですか?

IronXLは、C#アプリケーションとの簡単な統合、Excelファイルの読み取りと書き込み、フォーマットの適用、Excel数式のサポート、およびコンテンツ表示の最適化のためのセルの自動調整といった主要な機能を提供します。

Curtis Chau
テクニカルライター

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

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