行と列のサイズを自動調整する方法

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

によって チャクニット・ビン

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

IronXLで始めましょう

今日から無料トライアルでIronXLをあなたのプロジェクトで使い始めましょう。

最初のステップ:
green arrow pointer


行の自動リサイズ例

AutoSizeRowメソッドは、指定された行の高さを自動的に調整します。(s)内容に基づいて。

: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")
VB   C#

デモンストレーション

行の自動サイズ調整

列の自動サイズ変更例

AutoSizeColumnメソッドを使用して列の幅を調整する(s)長さに基づいてその内容。

: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")
VB   C#

デモンストレーション

列の自動サイズ調整

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


高度な自動行リサイズの例

AutoSizeRowメソッドのもう一つのオーバーロードは、第2引数としてBoolean値を取ります。 trueに設定すると、結合セルの高さも考慮され、結合領域の左上セルの値の高さを結合領域内の行数で割ることになります。 この条件は、結合されたセルの内容が結合領域内の他の行と比較して最も高い高さを持つ場合に適用されます。

: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")
VB   C#

例えば、内容の高さが192ピクセルで、3行にまたがる結合された領域にあるとします。 これらの行のいずれかに自動サイズを適用すると、アルゴリズムは192 px の内容の高さを3で割り、各行の高さが64 pxになります。 AutoSizeRow メソッドは各行に個別に適用する必要があることを忘れないでください。

行の自動サイズ変更の強化

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

値がfalseに設定されると、AutoSizeRowメソッドは最も高さがあるセルの内容に基づいて行の高さを調整します。 Microsoft Excelでは、セルの範囲を結合すると、左上のセルの値のみを保持し、その他のセルを消去します。ただし、IronXLでは、 マージ 操作は、結合領域内の他のセルの値を消去することなく実行されます。

: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)
VB   C#
行の自動サイズ変更の強化

デモンストレーションのために、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")
VB   C#

たとえば、コンテンツの幅が117ピクセルで、2列にまたがる結合された領域に位置している場合、これらの列のいずれかにオートサイズを適用すると、各列の幅は59ピクセルになります。 AutoSizeColumnメソッドは、各列ごとに個別に適用する必要があります。

カラムの自動サイズ調整を進める

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

値がfalseに設定されている場合、AutoSizeColumnメソッドはセルの内容のうち、最も長い幅に基づいて幅を調整します。 Microsoft Excelでは、セル範囲を結合すると、左上の値のみが保持され、残りは消去されます。ただし、IronXL マージ メソッドは、結合された領域内の他のセルの値を消去しません。

: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)
VB   C#
カラムの自動サイズ調整を進める

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

エクセルとIronXLの自動サイズ変更の違い

(以下の説明文を翻訳に続けて提供してください。)

Excel の自動調整行の高さ機能は、セルの上下に顕著なパディングを適用します。

エクセルとIronXL オートリサイズ行の比較

Excelの自動調整列幅機能は、セルに左右のパディングも適用しますが、それほど目立ちません。

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
VB   C#

エクセルの高さと幅の単位

Excelの高さと幅の測定単位は異なります。 具体的には、高さは1/20ポイント単位で測定され、一方、幅は「Normal」スタイルで指定されたフォントを使用してセルに収まる「0」の数に基づいて決定されます。

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

以下の近似値を考慮することで、IronXL と Excel の高さおよび幅の測定値の関係を確立できます:

  • 高さ: RangeRow.Height = 10 の場合、おおよその高さは 1ピクセル になります。
  • 幅: RangeColumn.Width = 23.2551ピクセル に相当します。
Chaknith related to エクセルの高さと幅の単位

チャクニット・ビン

ソフトウェアエンジニア

チャクニットは開発者のシャーロック・ホームズです。彼がソフトウェアエンジニアリングの将来性に気付いたのは、楽しみでコーディングチャレンジをしていたときでした。彼のフォーカスはIronXLとIronBarcodeにありますが、すべての製品でお客様を助けることに誇りを持っています。チャクニットは顧客と直接話すことで得た知識を活用して、製品自体のさらなる改善に貢献しています。彼の逸話的なフィードバックは、単なるJiraチケットを超えて、製品開発、ドキュメントおよびマーケティングをサポートし、顧客の全体的な体験を向上させます。オフィスにいないときは、機械学習やコーディングについて学んだり、ハイキングを楽しんだりしています。