如何自動調整行和列的大小
調整電子表格中的行和列可以節省大量空間,並使其更具可讀性。IronXL C#庫提供自動調整行和列大小的功能。由於它是在C#中完成的,調整方法可以用於所有現有的行和列,自動化電子表格中的手動任務。
如何自動調整行和列的大小
立即開始在您的專案中使用IronPDF,並享受免費試用。
查看 IronXL 上 Nuget 快速安裝和部署。已被下載超過800萬次,它正用C#改變Excel。
Install-Package IronXL.Excel
請考慮安裝 IronXL DLL 直接下載並手動安裝到您的專案或GAC表單: IronXL.zip
手動安裝到您的項目中
下載DLL自動調整列範例
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
方法的多載函式接受第二個參數作為 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 像素除以 3,得到每行的高度為 64 像素。請記住,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 點為單位測量,而寬度則根據在使用「標準」樣式指定的字體下,可以放入單元格中的「0」的數量來確定。
為了簡化單位轉換,可以在 IronXL 中設置對應於 Microsoft Excel 顯示像素的值。需要注意的是,像素並不代表螢幕上的物理點;相反,它被定義為 1/96 英寸,無論螢幕的實際解析度如何。Excel 本身設計為與解析度無關,不依賴物理像素。
為了建立 IronXL 與 Excel 高度和寬度測量之間的關係,可以參考以下近似值:
- 高度:RangeRow.Height = 10 將導致約 1 像素 的高度。
- 寬度:RangeColumn.Width = 23.255 對應於 1 像素。