使用IRONXL

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

發佈 2024年4月29日
分享:

介紹

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

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

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

1. 建立一個 Visual Studio 專案來演示 Excel 工作表中自動調整單元格。

  1. 安裝IronXL將庫添加到專案。

  2. 使用 IronXL 庫自動調整欄位寬度。

  3. 使用 IronXL 庫自動調整行高。

  4. 使用 IronXL 函式庫手動設置列寬和行高。

IronXL

IronXL庫是一個多功能的 .NET 庫,專為簡化 C# 開發人員的 Excel 電子表格操作而設計。 IronXL 提供快速且直觀的 API,讓使用者不需依賴 Office Interop 就能輕鬆存取、修改和生成 Excel 文件。它兼容多個 .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 檔案的大小。您可以從下載範例 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。

步驟 4:使用 IronXL 函式庫自動調整列高。

AutoSizeRow 方法調整列的高度以適應其內容。 請注意,這個方法是根據單元格中使用的字體來計算文字的高度。 如果系統上沒有可用的確切字體,將嘗試使用預設字體來測量。 如果找不到預設字體,將嘗試使用任何可用的字體。 然而,如果未找到字體,將拋出異常。 它使用從零開始的行索引作為參數。 必須在由 0 和 定義的範圍內(行數 - 1). 如果提供的 rowIndex 超出有效範圍,將拋出 ArgumentException。 當機器上未安裝字型時,會引發 SixLabors.Fonts.FontException

輸入 Excel 文件

在以下範例中,您可以看到某些行的大小未適當調整以適合資料。 現在讓我們來看看 C# 代碼如何自動調整 Excel 行高。

如何使用 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()** function.

  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 試算表根據所含內容動態調整,無論是導入的數據、動態報告、用戶生成的內容或數據分析結果。

IronXLIronXL 與各種 .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.12 剛剛發布

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