如何在 C# 中使用 IronXL 自動調整 Excel 單元格
在當今資料驅動的世界中,Microsoft Excel 仍然是企業和專業人士不可或缺的工具。無論是處理資料、建立報告,還是視覺化資料,Excel 的多功能性無可比擬。 然而,在 C# 程式中對 Excel 文件進行程式化操作時,開發者經常會面臨挑戰。 這時 IronXL 程式庫便派上用場,提供了一個在 C# 環境中進行 Excel 自動化的無縫解決方案。
IronXL 是由Iron Software 提供的一個程式庫,為在 C# .NET 和 VB.NET 環境中處理 Excel 文件提供了直觀的 APIs。 使用 IronXL,無需安裝 Microsoft Office 或 Excel Interop 組件。 它使開發者能夠輕鬆讀取、編輯和建立 Excel 試算表文件,完全支持包括 .NET 8、7、6,Core Frameworks 及 Azure 環境在內的各種 .NET Framework。
在本文中,我們將學習如何使用 C# 和 IronXL 自動調整 Excel 中的欄寬和列高。
- 建立一個 Visual Studio 專案來演示 Excel 試算表中的自動調整單元格。
- 將 IronXL 程式庫安裝到專案中。
- 使用 IronXL 程式庫自動調整欄寬。
- 使用 IronXL 程式庫自動調整行高。
- 使用 IronXL 程式庫手動設置欄寬和行高。
IronXL
IronXL 程式庫是一個多功能的 .NET 程式庫,旨在簡化 C# 開發者的 Excel 試算表操作。 提供快速且直觀的 API,IronXL 使使用者能夠輕鬆地存取、修改和生成 Excel 文件,而不依賴於 Office Interop。它的相容性擴展至多種 .NET Framework,包括 .NET Core 和 Azure,且不需要任何特殊依賴或安裝 Microsoft Office。支持多種 .NET 語言,如 C#、VB.NET 和 F#,IronXL 適合各種開發場景,包括控制台、網頁和桌面應用。 此外,IronXL 的相容性涵蓋不同平台,包括 Windows、Linux、macOS、Docker、Azure 和 AWS,使其成為開發者在多樣環境中尋求高效 Excel 整合的必備工具。
IronXL 程式庫的主要功能
- 簡單整合: IronXL 與 C# 應用無縫整合,提供簡單且直觀的 API 用於 Excel 自動化。 開發者可以快速上手,學習曲線非常平滑。
- 讀寫 Excel 文件: 使用 IronXL,可以輕鬆從現有的 Excel 文件中讀取資料,並將資料寫入新的或現有的試算表。 該功能對於資料導入/導出和報告生成等任務至關重要。
- 格式化和樣式: IronXL 允許您對 Excel 單元格應用格式和樣式,包括字體、顏色、邊框等。 這可確保您生成的 Excel 文件具有專業和精緻的外觀。
- 公式支持: 需要對 Excel 資料進行複雜計算或應用公式嗎? IronXL 支持 Excel 公式,允許您自動化計算和資料操作。
- 自動調整單元格: IronXL 提供的一個便利功能是能夠在 Excel 中自動調整單元格,確保內容整齊地適合每個單元格而不被截斷。
步驟 1:建立 Visual Studio 專案來演示 Excel 試算表中的自動調整單元格
首先,讓我們建立一個如下所示的 Visual Studio 專案。 從列表中選擇控制台應用模板

提供專案名稱和位置

從下拉選單中選擇所需的 .NET 版本並點擊建立

步驟 2:將 IronXL 程式庫安裝到專案中
從 Visual Studio NuGet Package Manager 安裝IronXL 程式庫

該套件也可以使用 NuGet 命令行安裝
dotnet add package IronXL.Excel --version 2024.3.20

有了這些,幾乎可以開始編寫程式碼了。
步驟 3:使用 IronXL 程式庫自動調整欄寬
來自 IronXL 程式庫的 AutoSizeColumn 方法調整欄的寬度以適合其內容。 此方法根據單元格中使用的字體計算文字寬度。 如果系統上沒有可用的精確字體,它將嘗試使用預設字體來測量。 如果找不到預設字體,則將嘗試使用任何可用字體。 然而,如果找不到字體,將會拋出異常。 它使用從零開始的列索引作為參數。 它必須在由 0 和 (ColumnCount - 1) 定義的範圍內。 如果提供的 columnIndex 超出有效範圍,則拋出 ArgumentException。 當機器上未安裝字體時,會拋出 SixLabors.Fonts.FontException。
現在,讓我們看一下如何利用這個來調整 Excel 文件的大小。您可以從這裡下載一個 Excel 範例文件。
輸入文件
這裡您可以看到欄寬未被適當定義,因此很難閱讀。 現在讓我們
看看如何使用 IronXL 程式庫在 Excel 表中自動調整欄寬。

using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
var colCount = workSheet.Columns.Count();
for (int i = 0; i < colCount; i++)
{
// Auto-fit column width for index i
workSheet.AutoSizeColumn(i);
}
// Save the autofitted workbook as a new file
workBook.SaveAs("autoResize.xlsx"); // Result file
using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
var colCount = workSheet.Columns.Count();
for (int i = 0; i < colCount; i++)
{
// Auto-fit column width for index i
workSheet.AutoSizeColumn(i);
}
// Save the autofitted workbook as a new file
workBook.SaveAs("autoResize.xlsx"); // Result file
Imports IronXL
' Load example spreadsheet
Private workBook As WorkBook = WorkBook.Load("FinancialSample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
Private colCount = workSheet.Columns.Count()
For i As Integer = 0 To colCount - 1
' Auto-fit column width for index i
workSheet.AutoSizeColumn(i)
Next i
' Save the autofitted workbook as a new file
workBook.SaveAs("autoResize.xlsx") ' Result file
程式碼說明
- 首先,我們使用
WorkBook.Load()方法載入 FinancialSample.xlsx。 - 然後我們獲得用於調整的列數。
- 我們遍歷所有欄索引來自動調整欄寬。
- 最後,我們將結果保存到一個名為
autoResize.xlsx的新文件。
輸出文件
下方您可以看到所有欄都已自動調整且可見。

步驟 4:使用 IronXL 程式庫自動調整行高
using AutoSizeRow 方法調整行高以適應其內容。 重要的是要注意,這種方法根據單元格中使用的字體計算文字高度。 如果系統上沒有可用的精確字體,它將嘗試使用預設字體來測量。 如果找不到預設字體,則將嘗試使用任何可用字體。 然而,如果找不到字體,將會拋出異常。 它使用從零開始的行索引作為參數。 它必須在由 0 和 (RowCount - 1) 定義的範圍內。 如果提供的 rowIndex 超出有效範圍,則拋出 ArgumentException。 當機器上未安裝字體時,會拋出 SixLabors.Fonts.FontException。
輸入 Excel 文件
在下面的例子中,您可以看到有些行沒有適當調整為修正資料。 現在讓我們看看使用 C# 程式碼自動調整 Excel 行高。

using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
var rowCount = workSheet.RowCount;
for (int i = 0; i < rowCount; i++)
{
// Auto-fit row height for index i
workSheet.AutoSizeRow(i);
}
// Save the autofitted workbook as a new file
workBook.SaveAs("autoResizeRows.xlsx"); // Result file
using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
var rowCount = workSheet.RowCount;
for (int i = 0; i < rowCount; i++)
{
// Auto-fit row height for index i
workSheet.AutoSizeRow(i);
}
// Save the autofitted workbook as a new file
workBook.SaveAs("autoResizeRows.xlsx"); // Result file
Imports IronXL
' Load example spreadsheet
Private workBook As WorkBook = WorkBook.Load("FinancialSample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
Private rowCount = workSheet.RowCount
For i As Integer = 0 To rowCount - 1
' Auto-fit row height for index i
workSheet.AutoSizeRow(i)
Next i
' Save the autofitted workbook as a new file
workBook.SaveAs("autoResizeRows.xlsx") ' Result file
程式碼說明
- 首先,我們使用
WorkBook.Load()方法載入 FinancialSample.xlsx。 - 獲得總行數。
- 我們遍歷所有行索引來自動調整行高。
- 最後,我們將結果保存到一個名為
autoResizeRows.xlsx的新文件。
輸出 Excel 文件

步驟 5:使用 IronXL 手動設置欄寬和行高
除了自動調整行和列之外,IronXL 還提供了手動調整寬度和高度為特定行高值和特定欄寬值的選項。
輸入 Excel 文件

using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Manually set row height and column width
RangeRow row = workSheet.GetRow(0);
row.Height = 500; // Set height
RangeColumn col = workSheet.GetColumn(0);
col.Width = 5000; // Set width
// Save the workbook with specific values set
workBook.SaveAs("specificValue.xlsx");
using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Manually set row height and column width
RangeRow row = workSheet.GetRow(0);
row.Height = 500; // Set height
RangeColumn col = workSheet.GetColumn(0);
col.Width = 5000; // Set width
// Save the workbook with specific values set
workBook.SaveAs("specificValue.xlsx");
Imports IronXL
' Load example spreadsheet
Private workBook As WorkBook = WorkBook.Load("FinancialSample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
' Manually set row height and column width
Private row As RangeRow = workSheet.GetRow(0)
row.Height = 500 ' Set height
Dim col As RangeColumn = workSheet.GetColumn(0)
col.Width = 5000 ' Set width
' Save the workbook with specific values set
workBook.SaveAs("specificValue.xlsx")
程式碼說明
- 使用
WorkBook.Load()函式載入 FinancialSample.xlsx。 - 檢索特定的行和列以手動調整其高度和寬度。
- 設置所需的高度和寬度值。
- 保存修改過的文件,名稱為
specificValue.xlsx。
輸出 Excel 文件

授權
獲取免費試用版,免費使用 IronXL 的所有功能 30 天。
獲得的授權必須放置在 appSettings.json 文件中:
{
"IronXL.License.LicenseKey": "myTrialKey"
}
結論
擁有來自 IronXL 的 AutoSizeColumn 和 AutoSizeRow 等功能,開發者可以輕鬆確保 Excel 試算表動態調整其包含的內容,不論是導入的資料、動態報告、使用者生成的內容還是資料分析結果。
IronXL 與各種 .NET Framework的相容性,包括 .NET Core 和 Azure,確保開發者可以將 Excel 自動化整合到各種應用中,而不需要依賴 Microsoft Office 或 Excel Interop。此外,IronXL 支持多種 .NET 語言和平台,使其成為尋求簡化 Excel 操作任務的開發者的多功能選擇。
本質上,IronXL 賦能開發者在 Excel 自動化專案中提高生產力、準確性和靈活性,提供一系列綜合特性以滿足現代 C# 開發的需求。 無論是生成報告、分析資料還是呈現資訊,IronXL 提供了在 C# 生態系統中 Excel 自動化所需的工具。
常見問題
如何使用C#自動調整Excel中的儲存格?
要使用C#自動調整Excel中的儲存格,利用IronXL的AutoSizeColumn和AutoSizeRow方法,這些方法會自動調整欄寬和列高以適合內容。
使用.NET程式庫進行Excel自動化有哪些好處?
使用像IronXL這樣的.NET程式庫進行Excel自動化,可以簡化讀取、寫入和格式化Excel檔案的工作,而不需要安裝Microsoft Office。這能提高C#應用程式的生產力和準確性。
如何使用C#手動調整Excel中的欄寬和列高?
使用IronXL,您可以透過GetColumn和GetRow方法手動調整欄寬和列高,針對特定的欄和列,然後設定它們的Width和Height屬性。
IronXL是否與.NET Core專案相容?
是的,IronXL完全相容於.NET Core專案,允許開發者在現代.NET環境中無縫整合Excel自動化功能。
如何在.NET專案中安裝IronXL?
要在.NET專案中安裝IronXL,可以使用Visual Studio的NuGet套件管理器,或在命令行中運行命令dotnet add package IronXL.Excel。
我可以在電腦上未安裝Excel的情況下使用IronXL嗎?
是的,IronXL允許您在不用安裝Microsoft Excel的情況下,以程式方式在C#中處理Excel檔案。
如果在自動調整儲存格時遇到字體異常應該怎麼辦?
如果在自動調整儲存格時遇到SixLabors.Fonts.FontException,請確保您的系統上有必要的字體,因為IronXL使用這些字體來計算文字尺寸。
IronXL如何支援多種.NET語言?
IronXL支援多種.NET語言,如C#、VB.NET和F#,提供開發者在不同編程環境中的靈活性和多樣性。
我應該在哪裡新增IronXL的授權密鑰?
應將IronXL的授權密鑰新增到您專案的appSettings.json文件中的鍵'IornXL.License.LicenseKey'下以啟用高級功能。
IronXL在Excel自動化中的一些關鍵特徵是什麼?
IronXL提供關鍵特徵,如與C#應用程式的輕鬆整合、讀寫Excel檔案、應用格式、支援Excel公式以及自動調整儲存格以優化內容顯示。




