Excelで行と列を自動リサイズする方法 | IronXL

C#でExcelの行と列のサイズを自動変更する方法

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronXLは、AutoSizeRow()AutoSizeColumn()のような、セルの内容に基づいて寸法を調整するメソッドにより、C#で自動化された行と列のサイズ変更を提供し、手動によるスプレッドシートの書式設定を排除し、マージされたセルの計算をサポートします。 この機能は、セルの寸法をその内容に動的に適合させることで、Excelのワークフローを自動化し、手作業による介入なしにプロフェッショナルなスプレッドシートを実現します。

クイックスタート: 単一呼び出しで列または行を自動サイズ調整

IronXLでは、行や列のサイズを1行で変更することができます。WorkSheet.AutoSizeColumn(int,bool)またはWorkSheet.AutoSizeRow(int,bool)を使用して、セルの内容に基づいて寸法を調整します(マージされたセルはオプションです)。 このアプローチは、Excelのインストールを必要とせず、すべての.NETプラットフォームで機能します。

Nuget Icon今すぐ NuGet で PDF を作成してみましょう:

  1. NuGet パッケージ マネージャーを使用して IronXL をインストールします

    PM > Install-Package IronXL.Excel

  2. このコード スニペットをコピーして実行します。

    // One-line: auto-resize column A including merged cells
    workSheet.AutoSizeColumn(0, true);
    // Or auto-resize row 5 quickly
    workSheet.AutoSizeRow(4, true);
  3. 実際の環境でテストするためにデプロイする

    今すぐ無料トライアルでプロジェクトに IronXL を使い始めましょう
    arrow pointer

行のサイズを自動変更するにはどうすればよいですか?

AutoSizeRowメソッドは、指定された行の高さをその内容に基づいて自動的にリサイズします。 この機能により、セル内のすべてのテキストが表示されるため、文字切れを防ぎ、読みやすさが向上します。 When working with Excel files without Interop, IronXL calculates optimal row height based on font size, cell content, and formatting attributes.

:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-rows.cs
using IronXL;

// Load existing spreadsheet
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Apply auto resize on row 2
workSheet.AutoSizeRow(1);

workBook.SaveAs("autoResize.xlsx");
Imports IronXL

' Load existing spreadsheet
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

' Apply auto resize on row 2
workSheet.AutoSizeRow(1)

workBook.SaveAs("autoResize.xlsx")
$vbLabelText   $csharpLabel

自動リサイズアルゴリズムは、フォントメトリクス、セルパディング、テキストラッピング設定を考慮し、最適な高さを決定します。 従来のExcelオートメーションから移行する開発者にとって、Excelのインストールを必要としない効率的な代替手段を提供します。

結果はどのようになりますか?

自動リサイズされた行が拡張され、従業員情報がすべて表示されるデータグリッドのビフォーアフター比較.

列のサイズを自動変更するにはどうすればよいですか?

AutoSizeColumnメソッドを使用して、コンテンツの長さに基づいて列幅をリサイズします。 この方法では、各列で最も長いコンテンツを分析し、それに応じて幅を調整することで、横スクロールなしですべてのデータが表示されるようにします。 アルゴリズムは、テキストの長さ、数値の書式設定、日付の表示、および必要な幅に影響するその他のセルの書式設定を考慮します。

:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-advance-rows.cs
using IronXL;

// Load existing spreadsheet
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Apply auto resize to rows individually
workSheet.AutoSizeRow(0, true);
workSheet.AutoSizeRow(1, true);
workSheet.AutoSizeRow(2, true);

workBook.SaveAs("advanceAutoResizeRow.xlsx");
Imports IronXL

' Load existing spreadsheet
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

' Apply auto resize to rows individually
workSheet.AutoSizeRow(0, True)
workSheet.AutoSizeRow(1, True)
workSheet.AutoSizeRow(2, True)

workBook.SaveAs("advanceAutoResizeRow.xlsx")
$vbLabelText   $csharpLabel

財務データやレポートを扱う場合、適切なサイズの列は読みやすさのために非常に重要です。 IronXL's auto-resize functionality integrates with features like cell borders and alignment to create professional spreadsheets.

結果はどのようになりますか?

Excel スプレッドシートの自動サイズ変更前と変更後: テキストが切り捨てられた狭い列と、コンテンツ全体を表示する適切なサイズの列.

ヒントすべての行と列のインデックス位置はゼロベースのインデックスに従います。


マージされたセルによる高度な行のサイズ変更はどのように処理しますか?

AutoSizeRow メソッドの別のオーバーロードは、2 番目の Boolean パラメータを取ります。 このパラメータを使用すると、サイズ変更時にマージされたセルを考慮することができます。 When working with merged cells in Excel, auto-resize behavior becomes more complex as content spans multiple cells.

:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-advance-rows.cs
using IronXL;

// Load existing spreadsheet
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Apply auto resize to rows individually
workSheet.AutoSizeRow(0, true);
workSheet.AutoSizeRow(1, true);
workSheet.AutoSizeRow(2, true);

workBook.SaveAs("advanceAutoResizeRow.xlsx");
Imports IronXL

' Load existing spreadsheet
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

' Apply auto resize to rows individually
workSheet.AutoSizeRow(0, True)
workSheet.AutoSizeRow(1, True)
workSheet.AutoSizeRow(2, True)

workBook.SaveAs("advanceAutoResizeRow.xlsx")
$vbLabelText   $csharpLabel

マージされたセル計算はどのように機能しますか?

コンテンツの高さが192ピクセルで、3行にまたがるマージ領域にある場合、これらの行のいずれかに自動リサイズを適用すると、アルゴリズムは192pxを3で割って、各行の64pxにします。 AutoSizeRowメソッドを各行に個別に適用する必要があります。 この配信では、マージされたコンテンツがマージ領域内のすべての行で適切に表示されるようにします。

Excel の行の自動サイズ変更機能の使用前と使用後の比較で、高さが 99 ピクセルから 33 ピクセルに最適化されていることがわかります。

値がfalseに設定されている場合はどうなりますか?

false に設定すると、AutoSizeRow メソッドは、内容が最も多いセルに基づいて行の高さを調整します。 In Microsoft Excel, merging cells retains only the upper-left value and clears the rest. However, IronXL's Merge operation preserves values of other cells in the merged region, providing more flexibility with complex spreadsheets.

:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-advance-rows-false.cs
using IronXL;

workSheet.Merge("A1:A3");

workSheet.AutoSizeRow(0, false);
workSheet.AutoSizeRow(1, false);
workSheet.AutoSizeRow(2, false);
Imports IronXL

workSheet.Merge("A1:A3")

workSheet.AutoSizeRow(0, False)
workSheet.AutoSizeRow(1, False)
workSheet.AutoSizeRow(2, False)
$vbLabelText   $csharpLabel
Excel の行の自動サイズ変更機能により、スプレッドシートのセル内のテキストの視認性が向上したことを示す前後の比較.

For demonstration purposes, I manually adjusted row height instead of using the Excel autofit row height function to avoid adding noticeable top and bottom padding.

useMergedCellsパラメータをfalseに設定すると、マージされたセルの高さは考慮されません。 各行の高さは、その内容のみに基づいて計算されます。 このアプローチは、マージされたリージョンに関係なく、一貫した行の高さを維持します。

マージされたセルで高度な列のサイズ変更を扱うにはどうすればよいですか?

AutoSizeRowと同様に、列のサイズ変更にマージされたセルの幅を考慮させることができます。 trueに設定すると、マージされたセルが最も長い内容を持つ場合、リサイズされた列幅はマージされたセルの幅をマージされた領域の列数で割ったものに等しくなります。 This feature helps when creating spreadsheets with complex layouts.

:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-advance-columns.cs
using IronXL;

// Load existing spreadsheet
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Apply auto resize to columns individually
workSheet.AutoSizeColumn(0, true);
workSheet.AutoSizeColumn(1, true);
workSheet.AutoSizeColumn(2, true);

workBook.SaveAs("advanceAutoResizeColumn.xlsx");
Imports IronXL

' Load existing spreadsheet
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

' Apply auto resize to columns individually
workSheet.AutoSizeColumn(0, True)
workSheet.AutoSizeColumn(1, True)
workSheet.AutoSizeColumn(2, True)

workBook.SaveAs("advanceAutoResizeColumn.xlsx")
$vbLabelText   $csharpLabel

マージされたセル幅の計算はどのように機能しますか?

コンテンツが2カラムにまたがるマージ領域で117ピクセルの幅を持つ場合、任意のカラムにオートリサイズを適用すると、各カラムは59ピクセルになります。 AutoSizeColumnメソッドは、各列に個別に適用する必要があります。 この比例配分により、マージされたコンテンツがマージ領域のすべての列で適切に表示されます。

Excel の列の自動サイズ変更により、B 列の幅が 117 ピクセルから 59 ピクセルに縮小されたことを示す前後の比較.

値がfalseに設定されている場合はどうなりますか?

falseに設定すると、AutoSizeColumnメソッドは、最も長いコンテンツを持つセルに基づいて幅を調整します。 In Microsoft Excel, merging cells keeps only the upper-left value and erases the rest. However, IronXL's Merge method preserves values of other cells in the merged region, giving developers more control over their data.

:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-advance-columns-false.cs
workSheet.Merge("A1:B1");

workSheet.AutoSizeColumn(0, false);
workSheet.AutoSizeColumn(1, false);
workSheet.Merge("A1:B1")

workSheet.AutoSizeColumn(0, False)
workSheet.AutoSizeColumn(1, False)
$vbLabelText   $csharpLabel
テキストデータ用に最適化された列幅の調整を示す、Excel自動サイズ変更前後の列.

マージされたセルの幅は優先されず、各列の幅はコンテンツの幅に基づいて計算されたため、幅の変更はありませんでした。

ExcelとIronXL Auto Resizeの違いは何ですか?

Excelネイティブのオートフィット機能とIronXLの実装の違いを理解することで、開発者がスプレッドシート操作を自動化する際に十分な情報を得た上で決定することができます。 これらの違いは、プラットフォーム間の一貫性を維持する場合や、セルの寸法を正確に制御する必要がある場合に問題となります。

行はどのように違うのですか?

Excelの行の高さの自動調整機能は、セルに目立つ上下のパディングを適用します。 IronXLは行の高さを正確に制御し、パディングを追加することなくコンテンツに必要なスペースを正確に計算します。 この違いは、高密度のデータを扱う場合や、正確な印刷レイアウトが要求される場合に大きな意味を持ちます。

Excel と IronXL の自動リサイズ比較で、同一のテストデータに対して異なる行処理を表示

列はどのように違うのですか?

Excelの列幅自動調整機能は、あまり目立たないが、セルに左右のパディングを適用する。 IronXL focuses on exact content width, beneficial when working with automated reporting systems where space optimization is crucial.

Excel とXL Excel のカラムの自動リサイズ比較で、同じコンテンツでも幅が異なることを示す

手動で縦横のサイズを変更するにはどうすればよいですか?

AutoSizeRowAutoSizeColumnメソッドを使用して寸法を自動的に計算して調整するほかに、特定の要件を満たすために列と行の幅と高さを手動で調整することができます。 標準化されたレポート形式を実装する場合や、特定の寸法を必要とするテンプレートを使用する場合は、手動によるサイジングが便利です。

  • 高さの調整: RangeRowHeight プロパティを設定します。
  • 幅の調整: RangeColumnWidth プロパティを設定します。
:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-manual.cs
using IronXL;

// Load existing spreadsheet
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

RangeRow row = workSheet.GetRow(0);
row.Height = 10; // Set height

RangeColumn col = workSheet.GetColumn(0);
col.Width = 10; // Set width

workBook.SaveAs("manualHeightAndWidth.xlsx");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Excelでは高さと幅にどのような単位を使用しますか?

Excelでは、高さと幅の測定単位が異なります。 高さは1/20ポイントで測定され、幅はNormalスタイルで指定されたフォントを使用してセルに収まる "0 "の数に基づいています。 When working with IronXL's API, understanding these conversions is essential for precise layouts.

単位変換を簡単にするため、IronXL.Excelの値をMicrosoft Excelの表示ピクセルとして解釈してください。 ピクセルとは、画面の解像度に関係なく、1インチの96分の1を指します。 Excelは解像度に依存せず、物理的なピクセルに依存しません。

IronXLとExcelの縦横サイズの関係:

  • 高さRangeRow.Height = 10 の場合、約 1 pixel となります。
  • 幅:RangeColumn.Width = 23.2551ピクセルに対応します。

正確なスプレッドシートのレイアウト制御を必要とする開発者にとって、これらの変換係数は正確な寸法計算を可能にします。 他の書式設定機能と組み合わせることで、Excelドキュメントの外観を完全にコントロールすることができます。 Remember to apply your license key when deploying applications using these features in production.

よくある質問

C#でセルの内容に基づいてExcelの行のサイズを自動的に変更するにはどうすればよいですか?

IronXLはセルの内容に基づいて行の高さを自動的に調整するAutoSizeRowメソッドを提供しています。workSheet.AutoSizeRow(rowIndex,includeMergedCells)を呼び出すだけです。rowIndexはゼロベースの行番号です。このメソッドは、フォント・サイズ、セルの内容、および書式属性に基づいて最適な高さを計算し、すべてのテキストが切り捨てられることなく表示されるようにします。

Excelスプレッドシートの列サイズをプログラムで自動変更できますか?

はい、IronXLはAutoSizeColumnメソッドで自動的に列幅を調整します。workSheet.AutoSizeColumn(columnIndex,includeMergedCells)を使用して、最も長い内容に基づいて列のサイズを変更します。このアルゴリズムは、テキストの長さ、数値書式、日付表示、およびその他のセル書式を考慮して、最適な幅を決定します。

自動リサイズはマージされたセルでも機能しますか?

IronXLはAutoSizeRowメソッドとAutoSizeColumnメソッドのbooleanパラメーターによってマージされたセルの自動リサイズをサポートしています。適切な寸法を決定する際にマージされたセルの計算を含めるには、2番目のパラメータをtrueに設定します(例えば、workSheet.AutoSizeColumn(0, true))。

行や列の自動リサイズにはどのような要素が考慮されますか?

IronXLのオートリサイズアルゴリズムは、フォントメトリクス、セルパディング、テキストラッピング設定、数値書式、日付表示、セルボーダーを含む複数の要素を考慮します。この包括的なアプローチにより、手動で操作することなく、すべてのコンテンツに対応する適切なサイズのセルを持つプロフェッショナルな見栄えのスプレッドシートが保証されます。

自動リサイズ機能を使用するには、Microsoft Excelがインストールされている必要がありますか?

IronXLはExcelのインストールを必要とせず、単独で動作します。ライブラリは内部ですべての計算を行うため、Excelをインストールできないサーバー環境や導入シナリオに最適です。このアプローチはすべての.NETプラットフォームで機能します。

複数の行や列を一度に自動リサイズできますか?

IronXLのAutoSizeRowメソッドとAutoSizeColumnメソッドは個々の行/列に対して機能しますが、簡単に複数の項目をループしてリサイズすることができます。これにより、ワークシート全体または特定の範囲のバッチ処理が可能になり、Excelのワークフローを効率的に自動化できます。

Chaknith Bin
ソフトウェアエンジニア
ChaknithはIronXLとIronBarcodeに取り組んでいます。彼はC#と.NETの深い専門知識を持ち、ソフトウェアの改善や顧客サポートに貢献しています。ユーザーとの対話から得られる洞察が、より良い製品、ドキュメント、および全体的な経験に寄与しています。
準備はできましたか?
Nuget ダウンロード 1,765,830 | バージョン: 2025.12 リリース