跳至頁尾內容
USING IRONXL
如何使用C#自動調整Excel中的儲存格 | IronXL

如何在 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 中的欄寬和列高。

  1. 建立一個 Visual Studio 專案來演示 Excel 試算表中的自動調整單元格。
  2. IronXL 程式庫安裝到專案中。
  3. 使用 IronXL 程式庫自動調整欄寬。
  4. 使用 IronXL 程式庫自動調整行高。
  5. 使用 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 程式庫的主要功能

  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 程式庫安裝到專案中

從 Visual Studio NuGet Package Manager 安裝IronXL 程式庫

如何使用 C# 自動調整 Excel 單元格:圖 4 - 使用 NuGet Package Manager 中的

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

dotnet add package IronXL.Excel --version 2024.3.20

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

有了這些,幾乎可以開始編寫程式碼了。

步驟 3:使用 IronXL 程式庫自動調整欄寬

來自 IronXL 程式庫的 AutoSizeColumn 方法調整欄的寬度以適合其內容。 此方法根據單元格中使用的字體計算文字寬度。 如果系統上沒有可用的精確字體,它將嘗試使用預設字體來測量。 如果找不到預設字體,則將嘗試使用任何可用字體。 然而,如果找不到字體,將會拋出異常。 它使用從零開始的列索引作為參數。 它必須在由 0 和 (ColumnCount - 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);
}

// 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
$vbLabelText   $csharpLabel

程式碼說明

  1. 首先,我們使用 WorkBook.Load() 方法載入 FinancialSample.xlsx。
  2. 然後我們獲得用於調整的列數。
  3. 我們遍歷所有欄索引來自動調整欄寬。
  4. 最後,我們將結果保存到一個名為 autoResize.xlsx 的新文件。

輸出文件

下方您可以看到所有欄都已自動調整且可見。

如何使用 C# 自動調整 Excel 單元格:圖 7 - 輸出 Excel,欄寬已自動調整。

步驟 4:使用 IronXL 程式庫自動調整行高

using AutoSizeRow 方法調整行高以適應其內容。 重要的是要注意,這種方法根據單元格中使用的字體計算文字高度。 如果系統上沒有可用的精確字體,它將嘗試使用預設字體來測量。 如果找不到預設字體,則將嘗試使用任何可用字體。 然而,如果找不到字體,將會拋出異常。 它使用從零開始的行索引作為參數。 它必須在由 0 和 (RowCount - 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++)
{
    // 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
$vbLabelText   $csharpLabel

程式碼說明

  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;

// 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")
$vbLabelText   $csharpLabel

程式碼說明

  1. 使用 WorkBook.Load() 函式載入 FinancialSample.xlsx。
  2. 檢索特定的行和列以手動調整其高度和寬度。
  3. 設置所需的高度和寬度值。
  4. 保存修改過的文件,名稱為 specificValue.xlsx

輸出 Excel 文件

如何使用 C# 自動調整 Excel 單元格:圖 11 - 輸出 Excel,手動設置欄寬和高度大小。

授權

獲取免費試用版,免費使用 IronXL 的所有功能 30 天。

獲得的授權必須放置在 appSettings.json 文件中:

{
  "IronXL.License.LicenseKey": "myTrialKey"
}

結論

擁有來自 IronXLAutoSizeColumnAutoSizeRow 等功能,開發者可以輕鬆確保 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的AutoSizeColumnAutoSizeRow方法,這些方法會自動調整欄寬和列高以適合內容。

使用.NET程式庫進行Excel自動化有哪些好處?

使用像IronXL這樣的.NET程式庫進行Excel自動化,可以簡化讀取、寫入和格式化Excel檔案的工作,而不需要安裝Microsoft Office。這能提高C#應用程式的生產力和準確性。

如何使用C#手動調整Excel中的欄寬和列高?

使用IronXL,您可以透過GetColumnGetRow方法手動調整欄寬和列高,針對特定的欄和列,然後設定它們的WidthHeight屬性。

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公式以及自動調整儲存格以優化內容顯示。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話