跳過到頁腳內容
使用 IRONXL

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

在当今数据驱动的世界中,Microsoft Excel 仍然是企业和专业人士不可或缺的工具。无论是计算数据、创建报告还是可视化数据,Excel 的多功能性无可匹敌。 然而,当涉及到在 C# 中以编程方式操作 Excel 文件时,开发人员经常面临挑战。 这就是 IronXL 库发挥作用的地方,为 C# 环境中的 Excel 自动化提供无缝解决方案。

IronXL library from 来自 Iron Software 的 IronXL 库为在 C# .NET 和 VB.NET 环境中顺利处理 Excel 文档提供了直观的 API。 使用 IronXL,无需安装 Microsoft Office 或 Excel 互操作组件。 它使开发人员能够轻松地读取、编辑和创建 Excel 电子表格文件,并提供对包括 .NET 8、7、6、核心框架和 Azure 环境在内的各种 .NET 框架的全面支持。

在本文中,我们将学习如何使用 C# 和 IronXL 在 Excel 中自动调整列宽和行高。

  1. 创建一个 Visual Studio 项目以演示 Excel 工作表中的自动调整单元格。
  2. 将 IronXL 库安装到项目中。
  3. 使用 IronXL 库自动调整列宽。
  4. 使用 IronXL 库自动调整行高。
  5. 使用 IronXL 库手动设置列宽和行高。

IronXL

IronXL 库是一个多功能的 .NET 库,旨在简化 C# 开发人员的 Excel 电子表格操作。 提供快速直观的 API,IronXL 使用户能够轻松访问、修改和生成 Excel 文件,而无需依赖 Office 互操作。其兼容性扩展到各种 .NET 框架,包括 .NET 核心和 Azure,无需任何特殊依赖项或安装 Microsoft Office。支持多种 .NET 语言,如 C#、VB.NET 和 F#,IronXL 满足各种开发场景,包括控制台、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 框架版本并点击“创建”。

步骤 2:将 IronXL 库安装到项目中。

从 Visual Studio NuGet 包管理器安装 IronXL 库

如何使用 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
SHELL

如何使用 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 库自动调整行高

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"
}

結論

通过 IronXL 提供的 AutoSizeColumnAutoSizeRow 等功能,开发人员可以轻松确保 Excel 电子表格自动调整为其包含的内容,无论是导入的数据、动态报告、用户生成的内容还是数据分析结果。

IronXL 与各种 .NET 框架(包括 .NET 核心和 Azure)的兼容性,确保开发人员可以将 Excel 自动化集成到广泛的应用程序中,而无需依赖 Microsoft Office 或 Excel 互操作。此外,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 Package Manager 或在命令行中運行命令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 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。