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

如何使用 C# 在 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
$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
$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");
$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 的AutoSizeColumnAutoSizeRow方法,它們會自動調整列寬和行高以適應內容。

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

使用 IronXL 等 .NET 程式庫進行 Excel 自動化,無需安裝 Microsoft Office 即可簡化讀取、寫入和格式化 Excel 檔案等任務。它能提高 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 允許您使用 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 公式以及自動調整單元格以優化內容顯示。

喬迪·巴迪亞
軟體工程師
喬迪精通Python、C#和C++,除了在Iron Software運用這些技能外,他還從事遊戲程式設計。他參與產品測試、產品開發和研究等工作,為產品的持續改進做出了巨大貢獻。豐富的經驗讓他始終保持挑戰性和工作熱情,他表示這是他最喜歡在Iron Software工作的原因之一。喬迪在佛羅裡達州邁阿密長大,畢業於佛羅裡達大學,主修電腦科學和統計學。