使用IRONXL

如何使用 C# 自動調整 Excel 單元格大小

發佈 2024年4月29日
分享:

介紹

在當今數據驅動的世界中,Microsoft Excel 仍然是企業和專業人士不可或缺的工具。無論是處理數據、製作報告,還是視覺化數據,Excel 的多功能性都是無與倫比的。然而,當涉及在 C# 中以程序方式操作 Excel 文件時,開發人員常常面臨挑戰。這就是 IronXL 發揮作用的地方。 IronXL 該庫進入發揮作用,為 C# 環境中的 Excel 自動化提供了無縫解決方案。

IronXL 圖書館由 Iron Software 提供直觀的API以在C# .NET和VB.NET環境中無縫處理Excel文檔。使用IronXL,無需安裝Microsoft Office或Excel Interop組件。它使開發人員能夠輕鬆讀取、編輯和創建Excel電子表格文件,並全面支持各種 .NET 框架,包括 .NET 8、7、6、Core 框架和Azure環境。

在本文中,我們將學習如何使用C#和IronXL自動調整Excel中的欄位寬度和高度。

1. 創建一個 Visual Studio 專案展示自動調整 Excel 工作表單元格。

  1. 安裝 IronXL 將庫添加到項目中。

  2. 使用 IronXL 庫自動適應欄寬。

  3. 使用 IronXL 庫自動適應行高。

  4. 使用 IronXL 庫手動設置欄寬和行高。

IronXL

IronXL IronXL 是一個多功能的 .NET 程式庫,專為 C# 開發者簡化 Excel 試算表操作而設計。IronXL 提供快速且直觀的 API,用戶可以輕鬆地存取、修改和生成 Excel 文件,而不依賴 Office Interop。它的兼容性擴展至各種 .NET 框架,包括 .NET Core 和 Azure,無需任何特殊的依賴或安裝 Microsoft Office。支持多種 .NET 語言,如 C#、VB.NET 和 F#,IronXL 滿足各種開發場景,包括控制台、網頁和桌面應用。此外,IronXL 在不同平台上的兼容性,包括 Windows、Linux、macOS、Docker、Azure 和 AWS,使其成為尋求高效 Excel 整合的開發者不可或缺的工具。

IronXL 库的主要功能

  1. 簡單整合: IronXL 無縫整合於C# 應用程式,提供簡單且直觀的API 用於Excel 自動化。開發人員可以快速上手,學習曲線最小。

  2. 讀取和寫入Excel 文件:使用IronXL,您可以輕鬆讀取現有的Excel 文件中的數據,並將數據寫入新的或現有的電子表格中。這項功能對於數據導入/導出和報表生成等任務至關重要。

  3. 格式和樣式:IronXL 讓您能夠對Excel 單元格進行格式和樣式設置,包括字體、顏色、邊框等。這確保了您生成的Excel 文件保持專業和精緻的外觀。

  4. 公式支持:需要對Excel 數據執行複雜計算或應用公式?IronXL 支持Excel 公式,允許您自動執行計算和數據處理。

  5. 自動調整單元格:IronXL 提供的一個便利功能是能夠在Excel 中自動調整單元格大小,確保內容整齊地適合每個單元格而不被截斷。

步驟1:建立Visual Studio專案以展示Excel工作表中的自動調整儲存格

開始時,讓我們按以下所示建立一個Visual Studio專案。從列表中選擇控制台應用程式範本。

如何使用 C# 自動調整 Excel 中的單元格大小:圖 1 - 開啟 Visual Studio,新增一個類型為 C# 主控台應用程式的專案。

提供專案名稱和位置

如何使用 C# 自動調整 Excel 中的儲存格大小:圖 2 - 接著,指定專案名稱和位置。

從下拉選單中選擇所需的 .NET 版本,然後點擊創建

如何使用 C# 自動調整 Excel 中的單元格:圖 3 - 然後,選擇所需的 .NET Framework 版本並點擊創建。

步驟2:將 IronXL 函式庫安裝到專案中。

安裝 IronXL 從 Visual Studio NuGet 套件管理器庫

如何使用 C# 自動調整 Excel 中的單元格大小:圖 4 - 使用 NuGet 套件管理器中的「為解決方案管理 NuGet 套件」來安裝 IronXL,在搜索欄中搜索「IronXL」,然後選擇項目並點擊安裝按鈕。

該套件也可以使用 NuGet 命令行安裝

dotnet add package IronXL.Excel --version 2024.3.20
// or
Install-Package IronXL.Excel
dotnet add package IronXL.Excel --version 2024.3.20
// or
Install-Package IronXL.Excel
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'dotnet add package IronXL.Excel --version 2024.3.20 Install-Package IronXL.Excel
VB   C#

如何使用C#自動調整 Excel 單元格大小:圖 5 - IronXL.Excel NuGet 套件

這樣我們就準備開始編寫程式碼了。

步驟 3: 使用 IronXL 庫自動調整列寬

AutoSizeColumn 方法來自 IronXL 此程式庫調整欄位寬度以適應其內容。此方法根據儲存格中使用的字體計算文字寬度。如果系統上無法提供確切字體,它會嘗試使用預設字體進行測量。如果找不到預設字體,它會嘗試利用任何可用的字體。然而,如果找不到任何字體,將會拋出一個異常。它使用從零開始的欄位索引作為參數。必須在0和 (欄數 - 1). 若提供的 columnIndex 超出有效範圍,將拋出 ArgumentException。 當機器上沒有安裝字體時,將拋出 SixLabors.Fonts.FontException

現在,我們來看看如何使用它來調整 Excel 文件的大小。您可以從 這裡.

輸入文件

在這裡,你可以看到欄位寬度未正確定義,因此非常難以閱讀。現在讓我們看看如何使用 IronXL 庫自動調整 Excel 表中的欄位寬度。

如何使用C#在Excel中自動調整單元格:圖6 - 輸入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);
}
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);
}
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
workBook.SaveAs("autoResize.xlsx") ' result file
VB   C#

代碼說明

  1. 首先,我們使用 WorkBook.Load 加載 FinancialSample.xlsx()**方法。

  2. 然後我們獲取需要調整列寬的單元格範圍,在本例中我們獲取列數。

  3. 然後我們遍歷所有的索引以自動調整列寬。

  4. 然後我們將結果保存到一個名為 autoResize.xlsx 的新文件。

輸出文件

您可以在下方看到所有的列都是自動調整大小且可見的。

如何使用 C# 自動調整 Excel 中的儲存格:圖 7 - 自動調整欄寬的輸出 Excel。

第四步:使用 IronXL 庫自動調整行高。

AutoSizeRow 方法調整行的高度以適應其內容。需要注意的是,該方法根據單元格中使用的字體計算文本高度。如果系統中沒有該字體,它將嘗試使用默認字體進行測量。如果沒有找到默認字體,將嘗試使用任何可用的字體。但是,如果找不到任何字體,則會拋出異常。它使用基於零的行索引作為參數。必須在 0 和 定義的範圍內。 (行數 - 1). 如果提供的 rowIndex 超出有效範圍,將拋出 ArgumentException。當機器上沒有安裝字體時,將拋出 SixLabors.Fonts.FontException

輸入Excel文件

在下面的例子中,您可以看到某些行的大小沒有適當地調整以適合數據。現在讓我們來看看自動調整Excel行高的C#代碼。

如何使用 C# 在 Excel 中自動調整單元格:圖 8 - 輸入 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++)
{
    workSheet.AutoSizeRow(i);
}
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++)
{
    workSheet.AutoSizeRow(i);
}
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
	workSheet.AutoSizeRow(i)
Next i
workBook.SaveAs("autoResizeRows.xlsx") ' result file
VB   C#

代碼說明

  1. 起初,我們使用 WorkBook.Load 加載 FinancialSample.xlsx()**方法。

  2. 然後我們獲取需要調整行高的單元格範圍,在這裡我們獲取行數。

  3. 然後我們遍歷所有索引來自動調整行高。

  4. 然後我們將結果保存到一個名為 autoResizeRows.xlsx 的新文件中。

輸出 Excel 檔案

如何使用 C# 自動調整 Excel 中的單元格大小:圖 9 - 自動調整列高度的輸出 Excel。

第 5 步:使用 IronXL 手動設置列寬和行高

除了自動調整行和列的大小,IronXL 還提供手動調整到特定行高值和列寬值的功能。

輸入 Excel 檔案

如何使用 C# 自動調整 Excel 中的儲存格大小:圖 10 - 輸入 Excel 文件

using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
RangeRow row = workSheet.GetRow(0);
row.Height = 500; // Set height
RangeColumn col = workSheet.GetColumn(0);
col.Width = 5000; // Set width
workBook.SaveAs("specificValue.xlsx");
using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
RangeRow row = workSheet.GetRow(0);
row.Height = 500; // Set height
RangeColumn col = workSheet.GetColumn(0);
col.Width = 5000; // Set width
workBook.SaveAs("specificValue.xlsx");
Imports IronXL
' Load example spreadsheet
Private workBook As WorkBook = WorkBook.Load("FinancialSample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
Private row As RangeRow = workSheet.GetRow(0)
row.Height = 500 ' Set height
Dim col As RangeColumn = workSheet.GetColumn(0)
col.Width = 5000 ' Set width
workBook.SaveAs("specificValue.xlsx")
VB   C#

代碼說明

  1. 起初,我們使用 WorkBook.Load 加載 FinancialSample.xlsx()** 函數。

  2. 然後我們獲取需要調整行高度的單元格範圍以及需要調整列寬的單元格範圍

  3. 接著我們設置高度和寬度值

  4. 然後我們將結果保存到名為 specificValue.xlsx 的新文件中

輸出 Excel 檔案

如何使用 C# 自動調整 Excel 單元格大小:圖 11 - 具有手動設置列寬和行高的輸出 Excel。

授權

IronXL取得的許可證必須放在appSettings.json文件中。

{
  "IronXL.License.LicenseKey":"myTrialKey"
}
{
  "IronXL.License.LicenseKey":"myTrialKey"
}
If True Then
  "IronXL.License.LicenseKey":"myTrialKey"
End If
VB   C#

結論

透過像 AutoSizeColumnAutoSizeRow 這樣的功能來自 IronXL開發人員可以輕鬆確保 Excel 電子表格根據它們所包含的內容動態調整,無論是匯入數據、動態報告、用戶生成的內容,還是數據分析結果。

IronXL與各種 .NET 框架(包括 .NET Core 和 Azure)兼容,確保開發人員可以將 Excel 自動化納入各種應用程序中,無需依賴 Microsoft Office 或 Excel Interop。此外,IronXL 支持多種 .NET 語言和平台,使其成為開發人員在不同環境中簡化 Excel 操作任務的多功能選擇。

總之, IronXL 賦予開發者提高 Excel 自動化項目中的生產力、準確性和靈活性,提供一個全面的功能套件來滿足現代 C# 開發的需求。無論是生成報告、分析數據還是展示信息, IronXL 提供在 C# 生態系統中在 Excel 自動化方面脫穎而出的必要工具。

< 上一頁
如何在C#中將Excel匯入SQL Server
下一個 >
如何在 Python 中解析 Excel 文件

準備開始了嗎? 版本: 2024.10 剛剛發布

免費 NuGet 下載 總下載次數: 1,023,839 查看許可證 >