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

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

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

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

クイックスタート: 単一のコールで列または行の自動リサイズ

Using IronXL, you can change the size of any row or column in one line. Use WorkSheet.AutoSizeColumn(int, bool) or WorkSheet.AutoSizeRow(int, bool) to adjust the size based on cell content (cell merging is optional). このアプローチは、Excelのインストールを必要とせず、すべて for .NETプラットフォームで機能します。

  1. IronXL をNuGetパッケージマネージャでインストール

    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 番目のブール型パラメータを受け取ります。 このパラメータを使用すると、サイズ変更時にマージされたセルを考慮することができます。 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メソッドは、各行に対して個別に適用する必要があります。 この配信では、マージされたコンテンツがマージ領域内のすべての行で適切に表示されるようにします。

高さを99ピクセルから33ピクセルに最適化したExcelの行の自動リサイズ機能のビフォーアフター比較

値が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に設定されている場合はどうなりますか?

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の自動リサイズの比較で、同一のテストデータで異なる行の取り扱いを示しています。

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

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

ExcelとIronXl.Excelのカラムの自動リサイズ比較。

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

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

  • 高さを調整する:RangeRowに設定します
  • 幅を調整する:RangeColumnに設定します
: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");
Imports IronXL

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

Dim row As RangeRow = workSheet.GetRow(0)
row.Height = 10 ' Set height

Dim col As RangeColumn = workSheet.GetColumn(0)
col.Width = 10 ' Set width

workBook.SaveAs("manualHeightAndWidth.xlsx")
$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をインストールできないサーバー環境や導入シナリオに最適です。このアプローチはすべて for .NETプラットフォームで機能します。

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

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

カーティス・チャウ
テクニカルライター

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

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

準備はできましたか?
Nuget ダウンロード 2,041,325 | バージョン: 2026.6 just released
Still Scrolling Icon

まだスクロールしていますか?

すぐに証拠が欲しいですか? PM > Install-Package IronXL.Excel
サンプルを実行する あなたのデータがスプレッドシートになるのを見る。