如何在 C# 中自動調整 Excel 行和列的大小 Copy for LLMsCopy for LLMs Copy page as Markdown for LLMs
# 如何在 C# 中自動調整 Excel 行和列的大小
IronXL 透過 `AutoSizeRow()` 和 `AutoSizeColumn()` 等方法,在 C# 中提供自動的列與列調整功能,能根據儲存格內容調整尺寸,從而消除手動設定試算表格式的需求,並支援合併儲存格的計算。 此功能透過動態調整儲存格尺寸以符合其內容,使 Excel 工作流程自動化,無須手動介入即可確保專業的試算表。
*as-heading:2(快速入門:自動調整列或行大小)*
透過 IronXL,您可在一行內調整任何列或行的大小。使用 `WorkSheet.AutoSizeColumn(int, bool)` 或 `WorkSheet.AutoSizeRow(int, bool)` 根據儲存格內容調整尺寸(可選合併儲存格)。 此方法適用於所有 .NET 平台,無需安裝 Excel。
```cs
:title=Auto-size Rows/Columns Instantly with IronXL
// One-line: auto-resize column A including merged cells
workSheet.AutoSizeColumn(0, true);
// Or auto-resize row 5 quickly
workSheet.AutoSizeRow(4, true);
```
<div class="hsg-featured-snippet">
<h3>最小工作流程(5 個步驟)</h3>
<ol>
<li><a class="js-modal-open" data-modal-id="trial-license-after-download" href="https://nuget.org/packages/IronXL.Excel/">下載 C# 庫,即可在 Excel 中自動調整行和列的大小。</a></li>
<li>導入所需的Excel文件</li>
<li>使用<code>AutoSizeRow</code>方法自動調整行大小</li>
<li>使用<code>AutoSizeColumn</code>方法可以根據列的內容寬度調整列寬。</li>
<li>設置高度和寬度值以滿足您的要求</li>
</ol>
</div>
## 如何自動調整欄位大小?
`AutoSizeRow` 方法會根據指定行中的內容,自動調整其高度。 此功能可確保單元格中的所有文字都是可見的,防止截斷並提高可讀性。 當處理<a href="https://ironsoftware.com/csharp/excel/examples/read-excel/">沒有 Interop</a> 的 Excel 檔案時,IronXL.Excel 會根據字型大小、單元格內容和格式屬性計算最佳的行高。
```csharp
:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-rows.cs
```
自動調整大小演算法會考慮字型度量、單元格填充和文字包覆設定,以決定最佳高度。 對於從傳統 Excel 自動化轉換過來的開發人員而言,這提供了一個不需要安裝 Excel 的有效替代方案。
### 結果是什麼樣子?
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/excel/how-to/autosize-rows-columns/autosize-rows-columns-rows.png" alt="資料方格顯示自動調整大小的行以顯示完整員工資訊的前後對比圖" class="img-responsive add-shadow" />
</div>
</div>
## 如何自動調整欄位大小?
請使用 `AutoSizeColumn` 方法,根據內容長度調整欄位寬度。 此方法會分析每列中最長的內容,並相應調整寬度,以確保所有資料都清晰可見,而無需水平捲動。 演算法會考慮文字長度、數字格式、日期顯示,以及其他會影響所需寬度的儲存格格式。
```csharp
:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-advance-rows.cs
```
在處理財務資料或報告時,適當大小的欄位對於可讀性而言至關重要。 IronXL.Excel 的自動調整大小功能整合了<a href="https://ironsoftware.com/csharp/excel/how-to/border-alignment/">儲存格邊界與對齊方式</a>等功能,以建立專業的試算表。
### 結果是什麼樣子?
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/excel/how-to/autosize-rows-columns/autosize-rows-columns-columns.png" alt="自動調整大小前後的 Excel 試算表:截短文字的窄欄與顯示完整內容的適當大小欄的對比" class="img-responsive add-shadow" />
</div>
</div>
[[t:(所有行和列索引位置都是零索引。)]]
<hr />
## 如何使用合併儲存格處理進階的行大小調整?
`AutoSizeRow` 方法的另一個重載版本會接受第二個布林參數。 此參數可讓您在調整大小時考慮合併的儲存格。 在 Excel 中使用 <a href="https://ironsoftware.com/csharp/excel/how-to/csharp-excel-merge-cells/"> 疊合儲存格</a>時,由於內容跨越多個儲存格,因此自動調整大小的行為變得更加複雜。
```csharp
:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-advance-rows.cs
```
### 合併儲存格計算如何運作?
如果內容的高度為 **192 像素**,且位於跨度為 **3 行**的合併區域中,則在對其中任何一行套用自動調整大小時,演算法會將 192 px 除以 3,結果是每一行為 64 px。 必須對每一行分別套用 `AutoSizeRow` 方法。 此分佈方式可確保合併後的內容在合併區域的所有行上都能正確顯示。
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/excel/how-to/autosize-rows-columns/autosize-rows-columns-advance-rows-true.png" alt="Excel 自動調整行列大小功能的使用前後比較,顯示高度從 99 像素優化至 33 像素" class="img-responsive add-shadow" />
</div>
</div>
### 如果該值設為 false 會怎樣?
當設定為 false 時,`AutoSizeRow` 方法會根據內容最多的儲存格來調整列高。 在 Microsoft Excel 中,合併儲存格時僅會保留左上角的數值,並清除其餘內容。然而,IronXL 的 <a href="https://ironsoftware.com/csharp/excel/how-to/csharp-excel-merge-cells/">`Merge`</a> 運算式能保留合併區域內其他儲存格的數值,為複雜的試算表提供更大的靈活性。
```csharp
:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-advance-rows-false.cs
```
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/excel/how-to/autosize-rows-columns/autosize-rows-columns-advance-rows-false.png" alt="之前和之後的比較,顯示 Excel 自動調整行列大小的功能改善了試算表單元格中文字的可視性" class="img-responsive add-shadow" />
</div>
</div>
為了示範目的,我手動調整了行高,而非使用 Excel <a href="#anchor-rows">自動調整行高功能</a>,以避免增加明顯的上下襯墊。
當 `useMergedCells` 參數設定為 false 時,將不考慮合併儲存格的高度。 每一行的高度僅根據其內容計算。 不論合併的區域為何,此方法都能維持一致的行高。
## 如何使用合併儲存格處理進階欄大小調整?
與 `AutoSizeRow` 類似,您可以讓欄位調整大小時考慮合併儲存格的寬度。 當設定為 `true` 時,若合併儲存格的內容最長,則調整後的欄寬等於該合併儲存格的寬度除以合併區域內的欄數。 當 <a href="https://ironsoftware.com/csharp/excel/how-to/create-spreadsheet/"> 建立具有複雜佈局的試算表</a>時,此功能會有所幫助。
```csharp
:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-advance-columns.cs
```
### 合併儲存格寬度計算如何運作?
如果在跨 **2 列**的合併區域中,內容的寬度為 **117 像素**,則對任何一列套用自動調整大小功能的結果是每列 59 像素。 必須對每一欄分別套用 `AutoSizeColumn` 方法。 此比例分佈可確保合併後的內容能在合併區域的所有欄位中正確顯示。
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/excel/how-to/autosize-rows-columns/autosize-rows-columns-advance-columns-true.png" alt="Excel 列自動調整大小之前與之後的比較,顯示列 B 的寬度從 117 像素縮小到 59 像素" class="img-responsive add-shadow" />
</div>
</div>
### 如果該值設為 false 會怎樣?
當設定為 `false` 時,`AutoSizeColumn` 方法會根據內容最長的儲存格來調整寬度。 在 Microsoft Excel 中,合併儲存格時僅會保留左上角的數值,並刪除其餘內容。然而,IronXL 的 <a href="https://ironsoftware.com/csharp/excel/how-to/csharp-excel-merge-cells/">`Merge`</a> 方法能保留合併區域內其他儲存格的數值,讓開發人員能更靈活地掌控資料。
```csharp
:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-advance-columns-false.cs
```
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/excel/how-to/autosize-rows-columns/autosize-rows-columns-advance-columns-false.png" alt="Excel 自動調整欄位大小之前與之後,顯示文字資料的最佳化欄寬調整" class="img-responsive add-shadow" />
</div>
</div>
合併後的儲存格寬度並非優先處理,因此不會產生任何寬度變化,因為每一列的寬度都是根據其內容寬度計算出來的。
## Excel 與 IronXL.Excel 自動調整大小有何差異?
瞭解 Excel 原生自動套用功能與 IronXL.Excel 實作之間的差異,有助於開發人員在自動化試算表作業時做出明智的決策。 在保持跨平台一致性或需要精確控制單元尺寸時,這些差異很重要。
### 行如何區分?
Excel 的自動適配行高功能會為儲存格套用明顯的上下填充。 IronXL 可精確控制行高,精確計算內容所需的空間,而無需額外的填充。 在處理密集的資料或需要精確的列印佈局時,這種差異非常顯著。
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/excel/how-to/autosize-rows-columns/autosize-rows-columns-comparison-rows.png" alt="Excel 與 IronXL.Excel 自動調整大小的比較,顯示相同測試資料的不同行處理方式" class="img-responsive add-shadow" />
</div>
</div>
### 欄位如何區分?
Excel 的自動適配列寬功能會在儲存格上套用左右填充,但不太顯著。 IronXL.Excel 著重於精確的內容寬度,在使用 <a href="https://ironsoftware.com/csharp/excel/examples/auto-resize-rows-and-columns/">自動化報表系統</a>時非常有利,因為在此系統中空間最佳化至關重要。
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/excel/how-to/autosize-rows-columns/autosize-rows-columns-comparison-columns.png" alt="Excel 與 IronXL.Excel 欄位自動調整大小比較,顯示相同內容的不同寬度測量結果" class="img-responsive add-shadow" />
</div>
</div>
## 如何手動調整高度和寬度?
除了使用 `AutoSizeRow` 和 `AutoSizeColumn` 方法自動計算和調整尺寸外,您也可以手動調整欄位和列的寬度與高度,以滿足特定需求。 在執行標準化的報告格式或使用需要特定尺寸的範本時,手動調整尺寸非常有用。
- 調整高度:設定 `Height` 的 `RangeRow` 屬性
- 調整寬度:設定 `Width` 的 `RangeColumn` 屬性
```csharp
:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-manual.cs
```
### Excel 的高度和寬度使用什麼單位?
Excel 中的高度和寬度測量單位不同。 高度以 1/20 點為單位計算,而寬度則依據 `Normal` 樣式中指定字型下,單一儲存格內可容納的"0"字元數量來決定。 在使用 <a href="https://ironsoftware.com/csharp/excel/object-reference/api/">IronXL's API</a> 時,瞭解這些轉換對於精確的佈局而言至關重要。
為了簡化單位轉換,請在 Microsoft Excel 中將 IronXL 值解釋為顯示像素。 像素的定義為 1/96 英吋,不論螢幕解析度為何。 Excel 與解析度無關,不依賴實體像素。
IronXL 與 Excel 高度和寬度測量的關係:
- 高度:`RangeRow.Height = 10` 會產生約 `1 pixel` 的結果
- 寬度:`RangeColumn.Width = 23.255` 對應 **1 像素**
對於需要精確試算表版面控制的開發人員而言,這些轉換係數能夠進行精確的尺寸計算。 結合其他格式化功能,手動調整大小可完全控制 Excel 文件的外觀。 在生產中部署使用這些功能的應用程式時,請記得套用 <a href="https://ironsoftware.com/csharp/excel/get-started/license-keys/">您的授權金鑰</a>。
Ask ChatGPT about this page
Ask Gemini about this page
Ask Perplexity about this page
IronXL 透過 AutoSizeRow() 和 AutoSizeColumn() 等方法,在 C# 中提供自動的列與列調整功能,能根據儲存格內容調整尺寸,從而消除手動設定試算表格式的需求,並支援合併儲存格的計算。 此功能透過動態調整儲存格尺寸以符合其內容,使 Excel 工作流程自動化,無須手動介入即可確保專業的試算表。
透過 IronXL,您可在一行內調整任何列或行的大小。使用 WorkSheet.AutoSizeColumn(int, bool) 或 WorkSheet.AutoSizeRow(int, bool) 根據儲存格內容調整尺寸(可選合併儲存格)。 此方法適用於所有 .NET 平台,無需安裝 Excel。
1 Install IronXL with NuGet Package Manager
PM > Install-Package IronXL.Excel
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 );
// One-line: auto-resize column A including merged cells
workSheet.AutoSizeColumn(0, true);
// Or auto-resize row 5 quickly
workSheet.AutoSizeRow(4, true);
C#
3 部署以在您的實時環境中測試
今天就開始在您的專案中使用IronXL,透過免費試用
免費30天試用
如何自動調整欄位大小?
AutoSizeRow 方法會根據指定行中的內容,自動調整其高度。 此功能可確保單元格中的所有文字都是可見的,防止截斷並提高可讀性。 當處理沒有 Interop 的 Excel 檔案時,IronXL.Excel 會根據字型大小、單元格內容和格式屬性計算最佳的行高。
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" ); 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" ) 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")
自動調整大小演算法會考慮字型度量、單元格填充和文字包覆設定,以決定最佳高度。 對於從傳統 Excel 自動化轉換過來的開發人員而言,這提供了一個不需要安裝 Excel 的有效替代方案。
結果是什麼樣子?
如何自動調整欄位大小?
請使用 AutoSizeColumn 方法,根據內容長度調整欄位寬度。 此方法會分析每列中最長的內容,並相應調整寬度,以確保所有資料都清晰可見,而無需水平捲動。 演算法會考慮文字長度、數字格式、日期顯示,以及其他會影響所需寬度的儲存格格式。
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" ); 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" ) 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")
在處理財務資料或報告時,適當大小的欄位對於可讀性而言至關重要。 IronXL.Excel 的自動調整大小功能整合了儲存格邊界與對齊方式 等功能,以建立專業的試算表。
結果是什麼樣子?
所有行和列索引位置都是零索引。
如何使用合併儲存格處理進階的行大小調整?
AutoSizeRow 方法的另一個重載版本會接受第二個布林參數。 此參數可讓您在調整大小時考慮合併的儲存格。 在 Excel 中使用 疊合儲存格 時,由於內容跨越多個儲存格,因此自動調整大小的行為變得更加複雜。
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" ); 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" ) 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 的 Merge 運算式能保留合併區域內其他儲存格的數值,為複雜的試算表提供更大的靈活性。
using IronXL ;
workSheet. Merge ( "A1:A3" );
workSheet. AutoSizeRow ( 0 , false );
workSheet. AutoSizeRow ( 1 , false );
workSheet. AutoSizeRow ( 2 , false ); 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 ) Imports IronXL
workSheet.Merge("A1:A3")
workSheet.AutoSizeRow(0, False)
workSheet.AutoSizeRow(1, False)
workSheet.AutoSizeRow(2, False)
為了示範目的,我手動調整了行高,而非使用 Excel 自動調整行高功能 ,以避免增加明顯的上下襯墊。
當 useMergedCells 參數設定為 false 時,將不考慮合併儲存格的高度。 每一行的高度僅根據其內容計算。 不論合併的區域為何,此方法都能維持一致的行高。
如何使用合併儲存格處理進階欄大小調整?
與 AutoSizeRow 類似,您可以讓欄位調整大小時考慮合併儲存格的寬度。 當設定為 true 時,若合併儲存格的內容最長,則調整後的欄寬等於該合併儲存格的寬度除以合併區域內的欄數。 當 建立具有複雜佈局的試算表 時,此功能會有所幫助。
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" ); 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" ) 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")
合併儲存格寬度計算如何運作?
如果在跨 2 列 的合併區域中,內容的寬度為 117 像素 ,則對任何一列套用自動調整大小功能的結果是每列 59 像素。 必須對每一欄分別套用 AutoSizeColumn 方法。 此比例分佈可確保合併後的內容能在合併區域的所有欄位中正確顯示。
如果該值設為 false 會怎樣?
當設定為 false 時,AutoSizeColumn 方法會根據內容最長的儲存格來調整寬度。 在 Microsoft Excel 中,合併儲存格時僅會保留左上角的數值,並刪除其餘內容。然而,IronXL 的 Merge 方法能保留合併區域內其他儲存格的數值,讓開發人員能更靈活地掌控資料。
workSheet. Merge ( "A1:B1" );
workSheet. AutoSizeColumn ( 0 , false );
workSheet. AutoSizeColumn ( 1 , false ); workSheet.Merge("A1:B1");
workSheet.AutoSizeColumn(0, false);
workSheet.AutoSizeColumn(1, false);
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 原生自動套用功能與 IronXL.Excel 實作之間的差異,有助於開發人員在自動化試算表作業時做出明智的決策。 在保持跨平台一致性或需要精確控制單元尺寸時,這些差異很重要。
行如何區分?
Excel 的自動適配行高功能會為儲存格套用明顯的上下填充。 IronXL 可精確控制行高,精確計算內容所需的空間,而無需額外的填充。 在處理密集的資料或需要精確的列印佈局時,這種差異非常顯著。
欄位如何區分?
Excel 的自動適配列寬功能會在儲存格上套用左右填充,但不太顯著。 IronXL.Excel 著重於精確的內容寬度,在使用 自動化報表系統 時非常有利,因為在此系統中空間最佳化至關重要。
如何手動調整高度和寬度?
除了使用 AutoSizeRow 和 AutoSizeColumn 方法自動計算和調整尺寸外,您也可以手動調整欄位和列的寬度與高度,以滿足特定需求。 在執行標準化的報告格式或使用需要特定尺寸的範本時,手動調整尺寸非常有用。
調整高度:設定 Height 的 RangeRow 屬性
調整寬度:設定 Width 的 RangeColumn 屬性
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" ); 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");
Imports IronXL
' Load existing spreadsheet
Dim workBook As WorkBook = WorkBook . Load ( "sample.xlsx" )
Dim workSheet As WorkSheet = workBook. DefaultWorkSheet
Dim row As RangeRow = workSheet. GetRow ( 0 )
row. Height = 10 ' Set height
Dim col As RangeColumn = workSheet. GetColumn ( 0 )
col. Width = 10 ' Set width
workBook. SaveAs ( "manualHeightAndWidth.xlsx" ) Imports IronXL
' Load existing spreadsheet
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")
Dim workSheet As WorkSheet = workBook.DefaultWorkSheet
Dim row As RangeRow = workSheet.GetRow(0)
row.Height = 10 ' Set height
Dim col As RangeColumn = workSheet.GetColumn(0)
col.Width = 10 ' Set width
workBook.SaveAs("manualHeightAndWidth.xlsx")
Excel 的高度和寬度使用什麼單位?
Excel 中的高度和寬度測量單位不同。 高度以 1/20 點為單位計算,而寬度則依據 Normal 樣式中指定字型下,單一儲存格內可容納的"0"字元數量來決定。 在使用 IronXL's API 時,瞭解這些轉換對於精確的佈局而言至關重要。
為了簡化單位轉換,請在 Microsoft Excel 中將 IronXL 值解釋為顯示像素。 像素的定義為 1/96 英吋,不論螢幕解析度為何。 Excel 與解析度無關,不依賴實體像素。
IronXL 與 Excel 高度和寬度測量的關係:
高度:RangeRow.Height = 10 會產生約 1 pixel 的結果
寬度:RangeColumn.Width = 23.255 對應 1 像素
對於需要精確試算表版面控制的開發人員而言,這些轉換係數能夠進行精確的尺寸計算。 結合其他格式化功能,手動調整大小可完全控制 Excel 文件的外觀。 在生產中部署使用這些功能的應用程式時,請記得套用 您的授權金鑰 。
常見問題 IronXL 提供 AutoSizeRow 方法來根據單元格內容自動調整行高。只需調用 workSheet.AutoSizeRow(rowIndex, includeMergedCells),其中 rowIndex 是基於零的行號。該方法根據字體大小、單元格內容和格式屬性計算最佳高度,確保所有文字可見且不被截斷。
是的,IronXL 提供 AutoSizeColumn 方法來自動調整欄寬。使用 workSheet.AutoSizeColumn(columnIndex, includeMergedCells) 根據它們的最長內容調整列寬。該算法會考慮文字長度、數字格式、日期顯示和其他單元格格式以確定最佳寬度。
IronXL 通過 AutoSizeRow 和 AutoSizeColumn 方法中的布林參數支持合併單元格的自動調整。在設置合適的尺寸時,將第二個參數設置為 true(例如:workSheet.AutoSizeColumn(0, true))以包括合併單元格計算。
IronXL 的自動調整算法考慮多種因素,包括字體度量、單元格填充、文字換行設置、數字格式、日期顯示和單元格邊框。這種全面的方法確保了專業外觀的試算表,正確調整單元格尺寸以容納所有內容,無需人工干預。
不需要,IronXL 獨立運作,無需安裝 Excel。該程式庫在內部執行所有計算,這使其非常適合於無法安裝 Excel 的伺服器環境和部署場景。該方法適用於所有 .NET 平台。
雖然 IronXL 的 AutoSizeRow 和 AutoSizeColumn 方法作用於單一行/列,您可以輕鬆地遍歷多個項目以調整它們。這允許批量處理整個工作表或特定範圍,有效地自動化 Excel 工作流。
IronXL streamlines Excel automation by providing methods like AutoSizeRow() and AutoSizeColumn(), enabling dynamic document formatting without manual efforts or the need to have Excel installed.
In Excel, merged cells typically only retain the upper-left cell's value, while IronXL's merge operation keeps values intact across the entire range, providing more flexibility when resizing merged regions.
Developers transitioning from Excel Interop to IronXL benefit from a simpler, installation-free setup and exact sizing controls through methods like AutoSizeRow() and AutoSizeColumn(), which offer reliable results across different .NET platforms.
IronXL measures height in 1/20 of a point, while width is determined by the number of '0's that fit in a cell with the specified font. These measurements correlate with display pixels for precise spreadsheet layout control.
技術作家
Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。
...
閱讀更多