如何自動調整行和列的大小
調整試算表中的行和列的大小可以節省很多空間,並使其更具可讀性。 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方法的另一個重載將第二個參數作為布林值。 當設置為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 的合併方法不會刪除合併區域中其他儲存格的值。
: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)

合併儲存格的寬度未被優先考慮,導致寬度沒有變化,因為每個列的寬度是根據其內容寬度計算的。
Excel 和 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 中的高度和寬度單位
Excel 中的高度和寬度的測量單位不同。 具體而言,高度以點的1/20測量,而寬度則根據可以在使用“Normal”樣式指定的字體的單元格中容納的“0”的數量來確定。
為了簡化單位轉換,讓我們在 IronXL 中設定值,該值對應於 Microsoft Excel 中的顯示像素。 請注意,像素並不代表螢幕上的實體點; 相反,它被定義為1/96英寸,無論屏幕的實際分辨率如何。 Excel 本身是設計為解析度獨立的,不依賴於實體像素。
要建立 IronXL 與 Excel 的高度和寬度測量之間的關係,您可以考慮以下的近似值:
- 高度:RangeRow.Height = 10將導致大約1像素的高度。
- 寬度:RangeColumn.Width = 23.255 將對應於1 畫素。