如何在 C# 中使用 Excel 自动调整单元格
在当今数据驱动的世界中,Microsoft Excel 仍然是企业和专业人士不可或缺的工具。无论是处理数据、生成报告还是可视化数据,Excel 的多功能性都无可匹敌。 然而,当涉及到在 C# 中编程操作 Excel 文件时,开发人员常常面临挑战。 这时 IronXL 库便能派上用场,为 C# 环境中的 Excel 自动化提供无缝解决方案。
IronXL 库由 Iron Software 提供,为 C# .NET 和 VB.NET 环境中无缝处理 Excel 文档提供直观的 API。 使用 IronXL,无需安装 Microsoft Office 或 Excel Interop 组件。 它使开发人员能够轻松读取、编辑和创建 Excel 电子表格文件,完全支持包括 .NET 8、7、6、Core Frameworks 和 Azure 等在内的各种 .NET 框架。
在本文中,我们将学习如何使用 C# 和 IronXL 调节 Excel 中文件列宽和行高。
- 创建一个 Visual Studio 项目以演示 Excel 工作表中的自动调整单元格。
- 将 IronXL 库安装到项目中。
- 使用 IronXL 库自动调整列宽。
- 使用 IronXL 库自动调整行高。
- 使用 IronXL 库手动设置列宽和行高。
IronXL
IronXL 库是一个通用的 .NET 库,旨在简化 C# 开发人员对 Excel 电子表格的操作。 提供快速且直观的 API,IronXL 使用户无需依赖 Office Interop 就能轻松访问、修改和生成 Excel 文件。其兼容性扩展到包括 .NET Core 和 Azure 在内的各种 .NET 框架,而无需任何特殊依赖项或安装 Microsoft Office。支持包括 C#、VB.NET 和 F# 在内的多种 .NET 语言,IronXL 满足了包括控制台、网络和桌面应用程序在内的广泛开发场景。 此外,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 项目。 从列表中选择控制台应用程序模板

提供项目名称和位置

从下拉菜单中选择所需的 .NET 版本并点击创建

步骤 2:将 IronXL 库安装到项目中。
从 Visual Studio NuGet 包管理器安装 IronXL 库

这个包也可以使用 NuGet 命令行安装
dotnet add package IronXL.Excel --version 2024.3.20
# or
Install-Package IronXL.Exceldotnet add package IronXL.Excel --version 2024.3.20
# or
Install-Package IronXL.Excel
这样我们就可以开始编写代码了。
步骤 3:使用 IronXL 库自动调整列宽
IronXL 库的 AutoSizeColumn 方法调整列的宽度以适合其内容。 此方法根据单元格中使用的字体计算文本宽度。 如果系统中找不到确切的字体,它将尝试使用默认字体测量宽度。 如果找不到默认字体,它将尝试使用任何可用的字体。 但是,如果找不到字体,则会抛出异常。 它使用从零开始的列索引作为参数。 必须在 0 和 (ColumnCount - 1) 定义的范围内。 如果给定的 columnIndex 超出有效范围,则会抛出 ArgumentException。 当机器上未安装字体时,会抛出 SixLabors.Fonts.FontException。
现在,让我们看看如何使用它调整 Excel 文件的大小。你可以从 这里 下载一个示例 Excel 文件。
输入文件
您可以看到这里的列宽未正确定义,因此非常难以阅读。 现在让我们 看看我们如何使用 IronXL 库自动调整 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 fileusing 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代码解释
- 最初,我们使用
WorkBook.Load()方法加载 FinancialSample.xlsx。 - 然后我们获取用于调整的列数。
- 我们遍历所有列索引以自动调整列宽。
- 最后,我们将结果保存为名为
autoResize.xlsx的新文件。
输出文件
下面您可以看到所有列都已自动调整大小并可见。

步骤 4:使用 IronXL 库自动调整行高
AutoSizeRow 方法调整行的高度以适应其内容。 需要注意的是,此方法根据单元格中使用的字体计算文本高度。 如果系统中找不到确切的字体,它将尝试使用默认字体测量宽度。 如果找不到默认字体,它将尝试使用任何可用的字体。 但是,如果找不到字体,则会抛出异常。 它使用从零开始的行索引作为参数。 必须在 0 和 (RowCount - 1) 定义的范围内。 如果给定的 rowIndex 超出有效范围,则会抛出 ArgumentException。 当机器上未安装字体时,会抛出 SixLabors.Fonts.FontException。
输入Excel文件
在下面的示例中,您可以看到某些行未调整大小以合适数据。 现在让我们看看用 C# 代码自动调整 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 fileusing 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代码解释
- 最初,我们使用
WorkBook.Load()方法加载 FinancialSample.xlsx。 - 我们检索总行数。
- 我们遍历所有行索引以自动调整行高。
- 最后,我们将结果保存为名为
autoResizeRows.xlsx的新文件。
输出 Excel 文件

步骤 5:使用 IronXL 手动设置列宽和行高
除了自动调整行和列大小外,IronXL 还提供了手动调整到特定行高值和特定列宽值的选项。
输入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");代码解释
- 使用
WorkBook.Load()函数加载 FinancialSample.xlsx。 - 检索特定行和列以手动调整其高度和宽度。
- 设置所需的高度和宽度值。
- 将修改后的文件保存为名为
specificValue.xlsx的文件。
输出 Excel 文件

许可
获取免费试用,免费使用所有 IronXL 功能 30 天。
获得的许可证必须放置在 appSettings.json 文件中:
{
"IronXL.License.LicenseKey": "myTrialKey"
}结论
通过 IronXL 中的 AutoSizeColumn 和 AutoSizeRow 等功能,开发人员可以轻松确保 Excel 电子表格根据其包含的内容动态调整,无论是导入的数据、动态报告、用户生成的内容,还是数据分析结果。
IronXL 与包括 .NET Core 和 Azure 在内的各种 .NET 框架的兼容性,确保开发人员能够将 Excel 自动化集成到多种应用程序中,而无需依赖于 Microsoft Office 或 Excel Interop。此外,IronXL 对多种 .NET 语言和平台的支持使其成为希望在各种开发环境中简化 Excel 操作任务的开发人员的多功能选择。
从本质上说,IronXL 让开发者能够在 Excel 自动化项目中提升生产力、精确性和灵活性,提供满足现代 C# 开发需求的全面功能套件。 无论是生成报告、分析数据还是呈现信息,IronXL 提供了在 C# 生态系统中实现 Excel 自动化所需的工具。
常见问题解答
我如何在Excel中使用C#自动调整单元格的大小?
要在Excel中使用C#自动调整单元格的大小,可以使用IronXL的AutoSizeColumn和AutoSizeRow方法,它们会自动调整列宽和行高以适应内容。
使用.NET库进行Excel自动化的好处是什么?
使用像IronXL这样的.NET库来进行Excel自动化,可以简化读取、写入和格式化Excel文件等任务,无需安装Microsoft Office。这提升了C#应用程序的生产力和准确性。
如何在C#中手动调整Excel中的列宽和行高?
使用IronXL,你可以通过GetColumn和GetRow方法来手动调整列宽和行高,以针对特定的列和行,然后设置它们的Width和Height属性。
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支持包括C#、VB.NET和F#在内的多种.NET语言,为在不同编程环境中工作的开发人员提供灵活性和多样性。
我应该在项目中哪里添加IronXL的许可证密钥?
IronXL的许可证密钥应添加到项目的appSettings.json文件中,键为'IronXL.License.LicenseKey',以激活高级功能。
IronXL在Excel自动化中有哪些关键功能?
IronXL提供了关键功能,如与C#应用程序的轻松集成、读取和写入Excel文件、应用格式、支持Excel公式以及自动调整单元格以优化内容显示。






