如何自動調整行和列的大小
調整試算表中的行和列的大小可以節省很多空間,並使其更具可讀性。 IronXL C# 函式庫提供了自動調整行和列大小的功能。 由於它是用C#完成的,因此可以為所有現有的行和列調用調整大小方法,從而自動化電子表格中的手動任務。
如何自動調整行和列的大小
開始使用IronXL
立即在您的專案中使用IronXL,並享受免費試用。
自動調整列大小範例
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")
演示
自動調整欄寬範例
使用 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")
演示
提示
進階自動調整列高範例
另一個 AutoSizeRow
方法的重載版本需要第二個參數為一個 布林值。 當設定為真時,合併單元格的高度也會被考慮,方法是取合併區域左上角單元格的高度值並除以合併區域中的行數。 當合併單元格的內容相對於合併區域中其餘行具有最高高度時,此條件適用。
: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 像素除以 3,使每行的高度為 64 像素。 請記得 AutoSizeRow
方法需要對每一行分別應用。
如果值設定為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 像素。