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

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

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

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

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

IronXLを使用すれば、任意の行や列を1行でサイズ変更できます。WorkSheet.AutoSizeRow(int, bool)を使用して、セルの内容に基づいてサイズを調整します(結合セルは任意)。 このアプローチは、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メソッドは、指定された行の高さを内容に基づいて自動的にリサイズします。 この機能により、セル内のすべてのテキストが表示されるため、文字切れを防ぎ、読みやすさが向上します。 ExcelファイルをInteropなしで扱う場合、IronXLはフォントサイズ、セルの内容、書式属性に基づいて最適な行の高さを計算します。

: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の自動リサイズ機能は、セルの境界線と整列のような機能と統合され、プロフェッショナルなスプレッドシートを作成します。

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

Excelスプレッドシートの自動リサイズ前と自動リサイズ後:テキストが切り捨てられた狭い列と、コンテンツがすべて表示される適切なサイズの列の比較

ヒント行および列のすべてのインデックス位置はゼロベースインデックスを使用します。


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

AutoSizeRowメソッドの別のオーバーロードは、第2のブールパラメータを取ります。 このパラメータを使用すると、サイズ変更時にマージされたセルを考慮することができます。 Excelでマージされたセルを扱う場合、コンテンツが複数のセルにまたがると、自動リサイズの動作が複雑になります。

: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メソッドは、最も内容の多いセルに基づいて行の高さを調整します。 Microsoft Excelでは、セルを結合すると左上の値のみが保持され、その他のものはクリアされます。しかしIronXLのMerge操作は、結合領域内の他のセルの値を保持し、複雑なスプレッドシートでより柔軟性を提供します。

: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の行の自動サイズ変更機能により、スプレッドシートのセル内のテキストの視認性が向上したことを示すビフォーアフターの比較

デモのために、私は、目立つ上下のパディングを追加しないように、Excelの行の高さ自動調整機能を使用する代わりに、手動で行の高さを調整しました。

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

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

AutoSizeRowに似て、結合セルの幅を考慮して列をリサイズすることができます。 trueに設定すると、結合セルが最も長い内容を持っている場合、リサイズされた列幅は結合領域内の列数で結合セルの幅を割ったものと等しくなります。 この機能は、複雑なレイアウトのスプレッドシートを作成するときに役立ちます。

: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メソッドは最も長い内容を持つセルに基づいて幅を調整します。 Microsoft Excelでは、セルを結合すると左上の値のみが保持され、その他のものは消去されます。しかし、IronXLのMergeメソッドは、結合領域内の他のセルの値を保持し、開発者により多くのデータ制御を提供します。

: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は、スペースの最適化が重要な自動レポートシステムで作業する際に有益な、正確なコンテンツ幅に焦点を当てています。

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

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

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

  • 高さを調整: Heightプロパティを設定します。
  • 幅を調整: Widthプロパティを設定します。
: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"の数に基づいています。 IronXLのAPIを使用する場合、これらの変換を理解することは正確なレイアウトに不可欠です。

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

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

  • 高さ: 1 pixelです。
  • 幅: RangeColumn.Width = 23.2551ピクセルに相当します。

正確なスプレッドシートのレイアウト制御を必要とする開発者にとって、これらの変換係数は正確な寸法計算を可能にします。 他の書式設定機能と組み合わせることで、Excelドキュメントの外観を完全にコントロールすることができます。 これらの機能を使用するアプリケーションを本番環境でデプロイする際には、ライセンス キーを適用することを忘れないでください。

よくある質問

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
テクニカルライター

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

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

準備はできましたか?
Nuget ダウンロード 2,134,203 | バージョン: 2026.7 リリースされたばかり
Still Scrolling Icon

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

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