如何在Excel中自動調整列和欄 | IronXL

如何在 C# 中自動調整 Excel 行和列的大小</#35;。

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

IronXL 透過 AutoSizeRow()AutoSizeColumn() 等方法在 C# 中提供自動的行和列大小調整功能,這些方法可根據儲存格內容調整尺寸,省去手動的試算表格式化,並支援合併儲存格計算。 此功能透過動態調整儲存格尺寸以符合其內容,使 Excel 工作流程自動化,無須手動介入即可確保專業的試算表。

快速入門:透過一次呼叫自動調整列或行的大小

使用 IronXL,您可以在一行中調整任何行或列的大小。使用 WorkSheet.AutoSizeColumn(int, bool)WorkSheet.AutoSizeRow(int, bool) 基於單元格內容調整尺寸(合併單元格可選)。 此方法適用於所有 .NET 平台,無需安裝 Excel。

Nuget Icon立即開始使用 NuGet 建立 PDF 檔案:

  1. 使用 NuGet 套件管理器安裝 IronXL

    PM > Install-Package IronXL.Excel

  2. 複製並運行這段程式碼。

    // One-line: auto-resize column A including merged cells
    workSheet.AutoSizeColumn(0, true);
    // Or auto-resize row 5 quickly
    workSheet.AutoSizeRow(4, true);
  3. 部署到您的生產環境進行測試

    立即開始在您的專案中使用 IronXL,免費試用!
    arrow pointer

如何自動調整欄位大小? `AutoSizeRow` 方法會根據內容自動調整指定行的高度。 此功能可確保單元格中的所有文字都是可見的,防止截斷並提高可讀性。 When working with Excel files without Interop, IronXL calculates optimal row height based on font size, cell content, and formatting attributes. ```csharp :path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-rows.cs ``` 自動調整大小演算法會考慮字型度量、單元格填充和文字包覆設定,以決定最佳高度。 對於從傳統 Excel 自動化轉換過來的開發人員而言,這提供了一個不需要安裝 Excel 的有效替代方案。

結果是什麼樣子?
資料網格顯示自動調整大小的行展開以顯示完整員工資訊的前後比較

如何自動調整欄位大小? 使用 `AutoSizeColumn` 方法根據內容長度調整欄位寬度。 此方法會分析每列中最長的內容,並相應調整寬度,以確保所有資料都清晰可見,而無需水平捲動。 演算法會考慮文字長度、數字格式、日期顯示,以及其他會影響所需寬度的儲存格格式。 ```csharp :path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-advance-rows.cs ``` 在處理財務資料或報告時,適當大小的欄位對於可讀性而言至關重要。 IronXL's auto-resize functionality integrates with features like cell borders and alignment to create professional spreadsheets.

結果是什麼樣子?
自動調整大小之前和之後的 Excel 試算表:截短文字的窄欄與顯示完整內容的適當大小欄
所有行和列索引位置均採用從零開始的索引方式。

如何使用合併儲存格處理進階的行大小調整? `AutoSizeRow` 方法的另一個重載需要第二個布林參數。 此參數可讓您在調整大小時考慮合併的儲存格。 When working with merged cells in Excel, auto-resize behavior becomes more complex as content spans multiple cells. ```csharp :path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-advance-rows.cs ```

合併儲存格計算如何運作? 如果內容的高度為 **192 像素**,且位於跨度為 **3 行**的合併區域中,則在對其中任何一行套用自動調整大小時,演算法會將 192 px 除以 3,結果是每一行為 64 px。 `AutoSizeRow` 方法需要單獨應用於每一行。 此分佈方式可確保合併後的內容在合併區域的所有行上都能正確顯示。
Excel 自動調整大小行功能的前後比較,顯示高度從 99 像素優化至 33 像素
### 如果該值設為 false 會怎樣? 當設定為 false 時,`AutoSizeRow` 方法會根據內容最高的儲存格調整行高。 In Microsoft Excel, merging cells retains only the upper-left value and clears the rest. However, IronXL's Merge operation preserves values of other cells in the merged region, providing more flexibility with complex spreadsheets. ```csharp :path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-advance-rows-false.cs ```
之前和之後的比較,顯示 Excel 自動調整行列大小功能改善電子表格儲存格中文字的可見度
For demonstration purposes, I manually adjusted row height instead of using the Excel autofit row height function to avoid adding noticeable top and bottom padding. 當 `useMergedCells` 參數設定為 false 時,不會考慮合併儲存格高度。 每一行的高度僅根據其內容計算。 不論合併的區域為何,此方法都能維持一致的行高。

如何使用合併儲存格處理進階欄大小調整? 與 `AutoSizeRow` 相似,您可以使列的大小調整考慮合併的儲存格寬度。 當設定為 `true` 時,如果合併的儲存格具有最長的內容,則重新調整的列寬度等於合併儲存格的寬度除以合併區域中的列數。 This feature helps when creating spreadsheets with complex layouts. ```csharp :path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-advance-columns.cs ```

合併儲存格寬度計算如何運作? 如果在跨 **2 列**的合併區域中,內容的寬度為 **117 像素**,則對任何一列套用自動調整大小功能的結果是每列 59 像素。 `AutoSizeColumn` 方法必須單獨應用於每一列。 此比例分佈可確保合併後的內容能在合併區域的所有欄位中正確顯示。
之前和之後的比較,顯示 Excel 列自動調整大小將列 B 的寬度從 117 減至 59 像素
### 如果該值設為 false 會怎樣? 當設定為 `false` 時,`AutoSizeColumn` 方法會根據內容最長的儲存格調整寬度。 In Microsoft Excel, merging cells keeps only the upper-left value and erases the rest. However, IronXL's Merge method preserves values of other cells in the merged region, giving developers more control over their data. ```csharp :path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-advance-columns-false.cs ```
Excel 自動調整欄位大小之前和之後,顯示文字資料的最佳化欄寬調整
合併後的儲存格寬度並非優先處理,因此不會產生任何寬度變化,因為每一列的寬度都是根據其內容寬度計算出來的。

Excel 與 IronXL.Excel 自動調整大小有何差異? 瞭解 Excel 原生自動套用功能與 IronXL.Excel 實作之間的差異,有助於開發人員在自動化試算表作業時做出明智的決策。 在保持跨平台一致性或需要精確控制單元尺寸時,這些差異很重要。

行如何區分? Excel 的自動適配行高功能會為儲存格套用明顯的上下填充。 IronXL 可精確控制行高,精確計算內容所需的空間,而無需額外的填充。 在處理密集的資料或需要精確的列印佈局時,這種差異非常顯著。
Excel vs IronXL 自動調整大小比較,顯示相同測試資料的不同行處理方式

欄位如何區分? Excel 的自動適配列寬功能會在儲存格上套用左右填充,但不太顯著。 IronXL focuses on exact content width, beneficial when working with automated reporting systems where space optimization is crucial.
Excel vs IronXL 列自動調整大小比較,顯示相同內容的不同寬度測量

如何手動調整高度和寬度? 除了使用 `AutoSizeRow` 和 `AutoSizeColumn` 方法自動計算和調整尺寸之外,您還可以手動調整欄和行的寬度和高度,以滿足特定需求。 在執行標準化的報告格式或使用需要特定尺寸的範本時,手動調整尺寸非常有用。 - 調整高度:設定 `RangeRow` 的 `Height` 屬性 - 調整寬度:設定 `RangeColumn` 的 `Width` 屬性 ```csharp :path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-manual.cs ```

Excel 的高度和寬度使用什麼單位? Excel 中的高度和寬度測量單位不同。 高度以 1/20 點為單位,而寬度則是根據使用 `Normal` 樣式中指定的字型,在單元格中可容納的 "0 "s 數量。 When working with IronXL's API, understanding these conversions is essential for precise layouts. 為了簡化單位轉換,請在 Microsoft Excel 中將 IronXL 值解釋為顯示像素。 像素的定義為 1/96 英吋,不論螢幕解析度為何。 Excel 與解析度無關,不依賴實體像素。 IronXL 與 Excel 高度和寬度測量的關係: - 高度:`RangeRow.Height = 10` 的結果約為 `1 像素` - 寬度:`RangeColumn.Width = 23.255`對應於 **1 像素**。 對於需要精確試算表版面控制的開發人員而言,這些轉換係數能夠進行精確的尺寸計算。 結合其他格式化功能,手動調整大小可完全控制 Excel 文件的外觀。 Remember to apply your license key when deploying applications using these features in production.

常見問題解答

如何在 C# 中根據儲存格內容自動調整 Excel 行的大小?

IronXL 提供 AutoSizeRow 方法,可根據儲存格內容自動調整行高。只需呼叫 workSheet.AutoSizeRow(rowIndex,includeMergedCells),其中 rowIndex 是基於零的行號。該方法會根據字型大小、單元格內容和格式屬性計算出最佳高度,確保所有文字都可見而不會截斷。

我可以程式化地自動調整 Excel 試算表中列的大小嗎?

是的,IronXL 提供 AutoSizeColumn 方法來自動調整欄位寬度。使用 workSheet.AutoSizeColumn(columnIndex, includeMergedCells) 可根據最長的內容調整欄的大小。該演算法會考慮文字長度、數字格式、日期顯示及其他儲存格格式,以決定最佳寬度。

自動調整大小是否適用於合併的儲存格?

IronXL 透過 AutoSizeRow 和 AutoSizeColumn 方法中的布林參數,支援合併儲存格的自動調整大小。將第二個參數設定為 true (例如:workSheet.AutoSizeColumn(0, true)),以在決定適當尺寸時包含合併儲存格的計算。

自動調整行列大小時會考慮哪些因素?

IronXL 的自動調整大小演算法會考慮多種因素,包括字型度量、單元格襯墊、文字包覆設定、數字格式、日期顯示和單元格邊界。這種全面的方法可確保電子表格具有專業的外觀,並且具有適當大小的儲存格,無需手動介入即可容納所有內容。

我需要安裝 Microsoft Excel 才能使用自動調整大小功能嗎?

不,IronXL 可獨立工作,無需安裝 Excel。該函式庫在內部執行所有計算,因此非常適合伺服器環境和無法安裝 Excel 的部署情境。此方法適用於所有 .NET 平台。

我可以一次自動調整多行或多列的大小嗎?

雖然 IronXL 的 AutoSizeRow 和 AutoSizeColumn 方法是針對單獨的行/列,但您可以輕鬆地在多個項目中迴圈來調整其大小。這允許對整個工作表或特定範圍進行批次處理,有效地將 Excel 工作流程自動化。

Chaknith Bin
軟體工程師
Chaknith 在 IronXL 和 IronBarcode 上工作。他對 C# 和 .NET 擁有深厚的專業知識,幫助改進了軟體並支持客戶。他從用戶互動中得到的見解有助於改善產品、文檔和整體體驗。
準備好開始了嗎?
Nuget 下載 1,765,830 | 版本: 2025.12 剛發表