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

How to Auto Resize Rows and Columns

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

スプレッドシートの行と列のサイズを変更することで、多くのスペースを節約し、より読みやすくすることができます。 IronXL C#ライブラリは、行と列を自動的にサイズ調整する機能を提供します。 これはC#で行われるため、既存のすべての行と列に対してリサイズメソッドを呼び出すことができ、スプレッドシートでの手動作業を自動化します。

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

IronXLを使用すると、1行で任意の行または列をリサイズできます。インターロップなし、手間なしです。 WorkSheet.AutoSizeColumn(int, bool) または WorkSheet.AutoSizeRow(int, bool) を使用して、セルの内容に基づいてサイズを即座に調整します(統合セルはオプションです)。

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronXL with NuGet Package Manager

    PM > Install-Package IronXL.Excel

  2. Copy and run this code snippet.

    // One-line: auto-resize column A including merged cells
    workSheet.AutoSizeColumn(0, true);
    // Or auto-resize row 5 quickly
    workSheet.AutoSizeRow(4, true);
  3. Deploy to test on your live environment

    Start using IronXL in your project today with a free trial
    arrow pointer
class="hsg-featured-snippet">

最小ワークフロー(5ステップ)

  1. Excelで行と列を自動サイズ調整するためのC#ライブラリをダウンロード
  2. 希望のExcelファイルをインポート
  3. AutoSizeRowメソッドを使用して行を自動サイズ調整
  4. 列の内容幅に応じてAutoSizeColumnメソッドを使用して列をリサイズ
  5. 高さと幅の値を必要に応じて設定

自動行サイズ調整の例

AutoSizeRowメソッドは、指定された行の高さをその内容に基づいて自動的にリサイズします。

: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

デモンストレーション

class="content-img-align-center">
class="center-image-wrapper"> Auto Resize Row

自動列サイズ調整の例

AutoSizeColumnメソッドを使用して、列の内容の長さに基づいて列の幅をリサイズします。

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

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

// Apply auto resize on column A
workSheet.AutoSizeColumn(0);

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

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

' Apply auto resize on column A
workSheet.AutoSizeColumn(0)

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

デモンストレーション

class="content-img-align-center">
class="center-image-wrapper"> Auto Resize Column

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


高度な自動行サイズ調整の例

AutoSizeRowメソッドの別のオーバーロードは、第2パラメーターとしてブール値を受け付けます。 このパラメーターは、統合セルを考慮してリサイズすることができます。

: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行にわたる統合領域に配置されているとします。 これらの行のいずれかに自動サイズ調整を適用する場合、アルゴリズムは192 px を 3で割ります、各行の高さは64ピクセルになります。 AutoSizeRowメソッドは、各行に個別に適用する必要があることを忘れないでください。

class="content-img-align-center">
class="center-image-wrapper"> Advance Auto Resize Row

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

値が false に設定されている場合、AutoSizeRowメソッドは、最大の高さを持つセルの内容に基づいて行の高さを調整します。 In Microsoft Excel, when a range of cells is merged, it retains only the value of the upper-left cell and clears the rest. However, with IronXL, the Merge operation is performed without erasing the values of other cells in the merged region.

: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
class="content-img-align-center">
class="center-image-wrapper"> Advance Auto Resize Row

For demonstration purposes, I manually adjusted the row height instead of using the Excel autofit row height function. これは、上下に明確な余白を追加することを避けるために行われました。

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

例えば、内容の幅が117ピクセルで、2列にわたる統合領域に配置されているとします。この場合、いずれかの列で自動サイズ調整を適用すると、各列の幅は59ピクセルになります。 AutoSizeColumnメソッドは、それぞれの列に個別に適用する必要があります。

class="content-img-align-center">
class="center-image-wrapper"> Advance Auto Resize Column

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

値をfalseに設定すると、AutoSizeColumnメソッドは、最も長い幅を持つセルの内容に基づいて幅を調整します。 In Microsoft Excel, when a range of cells is merged, it keeps only the upper-left value and erases the rest. However, the IronXL Merge method does NOT erase the value of other cells in the merged region.

: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
class="content-img-align-center">
class="center-image-wrapper"> Advance Auto Resize Column

統合セルの幅が優先されていないため、各列の幅はその内容の幅に基づいて計算されていたため、幅に変化はありませんでした。

ExcelとIronXLの自動サイズ調整の違い

Excelのオートフィット行の高さ機能は、セルに目立つ上部と下部の余白を適用します。

class="content-img-align-center">
class="center-image-wrapper"> ExcelとIronXLの自動行サイズ調整の比較

Excelのオートフィット列の幅機能は、セルに左右の余白も適用しますが、それほど目立ちません。

class="content-img-align-center">
class="center-image-wrapper"> ExcelとIronXLの自動列サイズ調整の比較

高さと幅の手動リサイズの例

AutoSizeRowおよびAutoSizeColumnメソッドを使用してコンテンツの幅と高さを計算および調整することに加えて、特定の要求を満たすために列と行の幅と高さを手動で調整する柔軟性も持っています。 これにより、必要に応じて特定の値に設定することができます。

  • 高さを調整: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」の数に基づいて決定されます。

単位の変換を簡単にするために、Microsoft Excelの表示ピクセルに対応するIronXLの値を解釈してみましょう。 なお、ピクセルは画面上の物理的な点を表すものではありません。 むしろ、画面の実際の解像度にかかわらず、1/96インチとして定義されています。 Excel自体は解像度に依存しないように設計されており、物理ピクセルには依存していません。

IronXLとExcelの高さと幅の測定値の関係を確立するために、次の近似を考慮することができます。

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

よくある質問

C#を使用してExcelの行を自動リサイズするにはどうすればよいですか?

IronXLのAutoSizeRowメソッドを使用して、Excelシート上の行の高さをその内容に基づいて自動的に調整できます。

Excelシートで列を自動的にリサイズする方法は?

IronXLは、コンテンツに基づいて列の幅を自動調整できるAutoSizeColumnメソッドを提供します。

Excelで結合セルが正しくリサイズされることを保証する方法は?

IronXLは、リサイズ時に結合セルを考慮するためのAutoSizeRowおよびAutoSizeColumnメソッドでBooleanパラメータを使用することによって、結合セルのリサイズをサポートしています。

IronXLがExcelのネイティブな自動リサイズ機能と比較して提供する利点は何ですか?

IronXLはExcelのネイティブな自動リサイズ機能が適用する余白を追加せずにセルの寸法を正確に制御でき、より正確なセルのサイズ設定が可能になります。

Microsoft Office Interopを使用せずにC#でExcelファイルを操作することは可能ですか?

はい、IronXLを使用すると、Microsoft Office Interopに依存せずにC#で直接Excelファイルを操作することができ、より効率的で使いやすくなります。

C#でExcelファイル内の行と列のサイズを手動で設定する方法は?

IronXLのRangeRowおよびRangeColumnのHeightとWidthプロパティを調整することによって、行と列の高さと幅を手動で設定できます。

IronXLが行の高さや列の幅を設定する際に使用する単位は何ですか?

IronXLは、行の高さは1/20ポイントで、幅は「Normal」スタイルのフォントを使用したときにフィットする「0」の数で決まる、Excelのデフォルトの測定単位を使用しています。

IronXLはExcelシートのリサイズプロセスを自動化できますか?

はい、IronXLは行と列のリサイズを自動化して、手動調整の必要性を減らし、生産性を向上させます。

C#を使用してExcelの行と列をリサイズする方法を学ぶためのリソースはありますか?

はい、IronXLはYouTubeで利用可能な行と列のリサイズに関するビデオチュートリアルを提供しており、開発者がこれらの機能の使い方を学ぶのに役立ちます。

Excelスプレッドシートのために自動リサイズが重要な理由は何ですか?

自動リサイズは、手動介入なしで、Excelスプレッドシートの可読性と美観を向上させ、すべてのコンテンツが見やすく整然と表示されるようにするために重要です。

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