行と列のサイズを自動調整する方法
スプレッドシートで行や列のサイズを変更すると、多くのスペースを節約し、読みやすくすることができます。 IronXL C# ライブラリは、行と列を自動的にリサイズする機能を提供します。 C#で実行されるため、サイズ変更メソッドは既存のすべての行と列に対して呼び出すことができ、スプレッドシートの手作業を自動化できます。
行と列のサイズを自動調整する方法
IronXLで始めましょう
今日から無料トライアルでIronXLをあなたのプロジェクトで使い始めましょう。
行の自動リサイズ例
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")
デモンストレーション
列の自動サイズ変更例
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")
デモンストレーション

ヒント
高度な自動行リサイズの例
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")
例
たとえば、コンテンツの高さが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)

デモンストレーションのために、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")
例
たとえば、コンテンツの幅が117ピクセルで、2列にまたがる結合された領域に配置されている場合、これらのいずれかの列にオートサイズを適用すると、各列の幅は59ピクセルになります。 AutoSizeColumn
メソッドは、各列に個別に適用する必要があります。

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

結合されたセルの幅が優先されていなかったため、各列の幅がその内容の幅に基づいて計算されていたため、幅に変更がありませんでした。
エクセルとIronXLの自動サイズ変更の違い
(以下の説明文を翻訳に続けて提供してください。)
行
Excel の自動調整行の高さ機能は、セルの上下に顕著なパディングを適用します。

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

高さと幅の手動リサイズ例
コンテンツの幅と高さを計算して調整するためにAutoSizeRow
およびAutoSizeColumn
メソッドに依存することに加えて、特定の要件に合わせて列と行の幅と高さを手動で調整する柔軟性もあります。 これにより、必要に応じて特定の値に設定することができます。
- 高さを調整する: RangeRowのHeightプロパティを設定してください。
- 幅を調整:RangeColumnの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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
エクセルの高さと幅の単位
Excelの高さと幅の測定単位は異なります。 具体的には、高さは1/20ポイント単位で測定され、一方、幅は「Normal」スタイルで指定されたフォントを使用してセルに収まる「0」の数に基づいて決定されます。
単位変換を簡素化するために、Microsoft Excelの表示ピクセルに対応する値をIronXLにしてください。 ピクセルは画面上の物理的な点を表すものではないことに注意することが重要です。 それどころか、画面の実際の解像度にかかわらず、1インチの1/96として定義されています。 Excel自体は、解像度に依存しないように設計されており、物理的なピクセルに依存しません。
以下の近似値を考慮することで、IronXL と Excel の高さおよび幅の測定値の関係を確立できます:
- 高さ: RangeRow.Height = 10 は、おおよその高さが 1 ピクセル になります。
- 幅: RangeColumn.Width = 23.255 は 1 ピクセル に対応します。