跳過到頁腳內容
使用 IRONXL

如何在 C# 中使用 IronXL 自動調整 Excel 單元格

在當今數據驅動的世界中,微軟Excel仍然是企業和專業人士不可或缺的工具。無論是處理數據、建立報告或視覺化數據,Excel的多功能性都無可匹敵。 然而,當使用 C# 以程式設計方式操作 Excel 檔案時,開發人員經常面臨挑戰。 這時IronXL庫就派上了用場,它為在 C# 環境中實現 Excel 自動化提供了無縫解決方案。

Iron SoftwareIronXL函式庫提供了直覺的 API,可在 C# .NET 和 VB.NET 環境中無縫處理 Excel 文件。 使用 IronXL,無需安裝 Microsoft Office 或 Excel Interop 元件。 它使開發人員能夠輕鬆讀取、編輯和建立 Excel 電子表格文件,並完全支援各種 .NET 框架,包括 .NET 8、7、6、Core Frameworks 和 Azure 環境。

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

  1. 建立一個Visual Studio專案來示範 Excel 工作表中的自動調整儲存格大小功能。
  2. IronXL庫安裝到專案中。
  3. 使用IronXL庫自動調整列寬。
  4. 使用IronXL庫自動調整行高。
  5. 使用IronXL庫手動設定列寬和行高。

IronXL。

IronXL庫是一個功能強大的 .NET 庫,旨在簡化 C# 開發人員對 Excel 電子表格的操作。 IronXL 提供快速直覺的 API,讓用戶無需依賴 Office Interop 即可輕鬆存取、修改和產生 Excel 檔案。它相容於多種 .NET 框架,包括 .NET Core 和 Azure,無需任何特殊依賴項或安裝 Microsoft Office。 IronXL 支援多種 .NET 語言,例如 C#、VB.NET 和 F#,可滿足包括控制台應用程式、Web 應用程式和桌面應用程式在內的各種開發場景。 此外,IronXL 的兼容性涵蓋了 Windows、Linux、macOS、Docker、Azure 和 AWS 等不同平台,使其成為開發人員在各種環境中尋求高效 Excel 整合的必備工具。

IronXL。庫的主要特點

1.輕鬆集成IronXL與 C# 應用程式無縫集成,為 Excel 自動化提供簡單直覺的 API。 開發者可以快速上手,學習曲線非常平緩。 2.讀取和寫入 Excel 文件:使用 IronXL,您可以輕鬆地從現有的 Excel 文件中讀取數據,並將數據寫入新的或現有的電子表格。 此功能對於資料導入/匯出和報告生成等任務至關重要。 3.格式和樣式:IronXL 可讓您對 Excel 儲存格套用格式和樣式,包括字型、顏色、邊框等。 這樣可以確保您產生的 Excel 檔案保持專業、美觀的外觀。 4.公式支援:需要執行複雜的計算或將公式應用於 Excel 資料嗎? IronXL 支援 Excel 公式,讓您可以自動執行計算和資料處理。 5.自動調整儲存格大小:IronXL 提供的一項便利功能是能夠自動調整 Excel 中的儲存格大小,確保內容整齊地適應每個儲存格,而不會被截斷。

步驟 1:建立一個 Visual Studio 專案來示範 Excel 工作表中的自動調整儲存格大小功能。

首先,讓我們建立一個 Visual Studio 項目,如下所示。 從清單中選擇控制台應用程式模板。

如何在 Excel 中使用 C# 自動調整儲存格大小:圖 1 - 開啟 Visual Studio,並新增 C# 控制台應用程式類型的新專案。

請提供項目名稱和地點

如何在 Excel 中使用 C# 自動調整儲存格大小:圖 2 - 接下來,指定項目名稱和位置。

從下拉式選單中選擇所需的 .NET 版本,然後按一下"建立"。

如何在 Excel 中使用 C# 自動調整儲存格大小:圖 3 - 然後,選擇所需的 .NET Framework 版本並按一下"建立"。

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

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

如何在 Excel 中使用 C# 自動調整儲存格大小:圖 4 - 使用 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
SHELL

如何使用 C# 在 Excel 中自動調整儲存格大小:圖 5 - IronXL.Excel NuGet 套件

這樣一來,我們就可以開始寫程式了。

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

IronXL庫中的AutoSizeColumn方法可以調整列的寬度以適應其內容。 此方法根據單元格中使用的字體計算文字寬度。 如果系統中沒有所需的字體,則會嘗試使用預設字體進行測量。 如果找不到預設字體,它將嘗試使用任何可用的字體。 但是,如果找不到字體,則會拋出異常。 它使用從零開始的列索引作為參數。 它必須在 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);
}

// 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的新檔案中。

輸出檔案

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

如何在 Excel 中使用 C# 自動調整儲存格大小:圖 7 - 輸出具有自動調整列寬的 Excel 檔案。

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

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

如何在 Excel 中使用 C# 自動調整儲存格大小:圖 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 文件

如何在 Excel 中使用 C# 自動調整儲存格大小:圖 11 - 輸出具有手動大小的列寬和高度的 Excel 檔案。

授權

取得免費試用,即可在 30 天內自由使用 IronXL 的所有功能。

獲得的許可證必須放置在 appSettings.json 文件中:

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

結論

透過IronXLAutoSizeColumnAutoSizeRow等功能,開發人員可以輕鬆確保 Excel 電子表格能夠根據其包含的內容動態調整,無論是匯入的資料、動態報告、使用者產生的內容或資料分析結果。

IronXL與包括 .NET Core 和 Azure 在內的各種 .NET 框架相容,確保開發人員可以將 Excel 自動化功能整合到各種應用程式中,而無需依賴 Microsoft Office 或 Excel Interop。此外,IronXL 支援多種 .NET 語言和平台,使其成為開發人員在各種環境中簡化 Excel 操作任務的理想選擇。

從本質上講, IronXL使開發人員能夠提高 Excel 自動化專案的生產力、準確性和靈活性,並提供一套全面的功能來滿足現代 C# 開發的需求。 無論是產生報告、分析數據還是展示訊息, IronXL都提供了在 C# 生態系統中實現 Excel 自動化所需的工具。

常見問題解答

如何使用 C# 在 Excel 中自動調整儲存格?

若要使用 C# 在 Excel 中自動調整儲存格的大小,請利用 IronXL.Excel 的 AutoSizeColumnAutoSizeRow 方法,這些方法可自動調整欄寬和行高以符合內容。

在 Excel 自動化中使用 .NET 函式庫有什麼好處?

使用 IronXL.Excel 之類的 .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.Excel 嗎?

是的,IronXL 可讓您以 C# 程式化的方式處理 Excel 檔案,而不需要在您的機器上安裝 Microsoft Excel。

如果在自動貼合單元時遇到字型異常,該怎麼辦?

如果您在自動擬合單元格時遇到 SixLabors.Fonts.FontException 問題,請確保您的系統上有必要的字型,因為 IronXL 會使用這些字型來計算文字尺寸。

IronXL 如何支援多種 .NET 語言?

IronXL 支援多種 .NET 語言,例如 C#、VB.NET 和 F#,為在不同程式設計環境中工作的開發人員提供多樣性和靈活性。

我要在專案中的哪裡加入 IronXL 授權金鑰?

IronXL 授權金鑰必須加入您專案的 appSettings.json 檔案中,金鑰名稱為「IronXL.License.LicenseKey」,才能啟動高級功能。

IronXL for Excel 自動化有哪些主要功能?

IronXL 提供的主要功能包括:輕鬆與 C# 應用程式整合、讀寫 Excel 檔案、套用格式、支援 Excel 公式,以及自動調整儲存格以最佳化內容顯示。

Jordi Bardia
軟體工程師
Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担产品测测试,产品开发和研究的责任时,Jordi 为持续的产品改进增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。