跳過到頁腳內容
使用 IRONXL
如何在 Excel 中使用 C# | IronXl.Excel 自動貼合儲存格

如何在 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,無需任何特殊依賴項或安裝IronXL Office。 IronXL 支援多種.NET語言,例如 C#、 .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 項目,如下所示。 從清單中選擇控制台應用程式模板。

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

請提供項目名稱和地點

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

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

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

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

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

如何使用 C# 在 Excel 中自動調整儲存格大小:圖 4 - 使用NuGet套件管理器安裝IronXL。在NuGet套件管理器的搜尋列中搜尋

該軟體包也可以使用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
$vbLabelText   $csharpLabel

程式碼解釋

  1. 首先,我們使用 WorkBook.Load() 方法來載入 FinancialSample.xlsx。
  2. 然後我們得到需要調整的列數。
  3. 我們遍歷所有列索引,自動調整列寬。
  4. 最後,我們將結果儲存到名為 autoResize.xlsx 的新檔案中。

輸出檔案

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

如何使用 C# 在 Excel 中自動調整儲存格寬度:圖 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
$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");
$vbLabelText   $csharpLabel

程式碼解釋

  1. 使用 WorkBook.Load() 函數載入 FinancialSample.xlsx。
  2. 取得特定行和列,手動調整其高度和寬度。
  3. 設定所需的高度和寬度值。
  4. 將修改後的檔案儲存為 specificValue.xlsx

輸出 Excel 文件

如何使用 C# 自動調整 Excel 儲存格大小:圖 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 單元格大小?

要在 Excel 中使用 C# 自動調整單元格大小,請利用 IronXL 的AutoSizeColumnAutoSizeRow方法,這些方法會自動調整列寬和行高以適應內容。

使用 .NET 庫對 Excel 自動化有什麼好處?

使用像 IronXL 這樣的 .NET 庫來進行 Excel 自動化,可以簡化閱讀、寫入和格式化 Excel 文件的任務,而不需要安裝 Microsoft Office。這進一步提升了 C# 應用程式的生產力和準確性。

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

通過 IronXL,您可以手動調整列寬和行高,使用GetColumnGetRow方法來針對特定的列和行,然後設置其WidthHeight屬性。

IronXL 是否兼容 .NET Core 專案?

是的,IronXL 完全兼容 .NET Core 專案,允許開發人員將 Excel 自動化功能無縫地整合到現代 .NET 環境中。

如何在 .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 支持 C#、VB.NET 和 F# 等多種 .NET 語言,為在不同程式設計環境中工作的開發人員提供了靈活性和多樣性。

我應該在哪裡添加 IronXL 的授權密鑰到我的專案中?

IronXL 的授權密鑰應該添加到專案的appSettings.json文件中,使用 'IronXl.License.LicenseKey' 鍵來激活高級功能。

IronXL 在 Excel 自動化中有哪些關鍵功能?

IronXL 提供了一些關鍵功能,例如與 C# 應用程式的簡便集成、讀寫 Excel 文件、應用格式、支持 Excel 公式,以及自動調整單元格以優化內容顯示。

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

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me