
如何在 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 Framework。
在本文中,我们将学习如何使用 C# 和 IronXL 调节 Excel 中文件列宽和行高。
- 创建一个 Visual Studio 项目以演示 Excel 工作表中的自动调整单元格。
- 将 IronXL 库安装到项目中。
- 使用 IronXL 库自动调整列宽。
- 使用 IronXL 库自动调整行高。
- 使用 IronXL 库手动设置列宽和行高。
IronXL
IronXL 库是一个通用的 .NET 库,旨在简化 C# 开发人员对 Excel 电子表格的操作。 提供快速且直观的 API,IronXL 使用户无需依赖 Office Interop 就能轻松访问、修改和生成 Excel 文件。其兼容性扩展到包括 .NET Core 和 Azure 在内的各种 .NET Framework,而无需任何特殊依赖项或安装 Microsoft Office。支持包括 C#、VB.NET 和 F# 在内的多种 .NET 语言,IronXL 满足了包括控制台、网络和桌面应用程序在内的广泛开发场景。 此外,IronXL 的兼容性跨多个平台,包括 Windows、Linux、macOS、Docker、Azure 和 AWS,成为寻求在多样化环境中实现高效 Excel 集成的开发人员的必备工具。
IronXL 库的关键功能
- 轻松集成:IronXL 可与 C# 应用程序无缝集成,提供简单直观的 API 用于 Excel 自动化。 开发人员可以快速入门,学习曲线最低。
- **读写 Excel 文件:**借助 IronXL,您可以轻松地从现有 Excel 文件中读取数据,并将数据写入新电子表格或现有电子表格。 这种功能对于完成数据导入/导出和报告生成等任务至关重要。
- **格式与样式:**IronXL 允许您对 Excel 单元格应用格式和样式,包括字体、颜色、边框等。 这确保您生成的 Excel 文件保持专业和精致的外观。
- **公式支持:**需要对 Excel 数据进行复杂计算或应用公式吗? IronXL 支持 Excel 公式,允许您自动执行计算和数据操作。
- **单元格自动调整:**IronXL 提供的一项便捷功能是能够自动调整 Excel 单元格大小,确保内容整齐地显示在每个单元格内,不会被截断。
步骤 1:创建一个 Visual Studio 项目以演示 Excel 工作表中的自动调整单元格
要开始,请按以下所示创建一个 Visual Studio 项目。 从列表中选择控制台应用程序模板

提供项目名称和位置

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

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

这个包也可以使用 NuGet 命令行安装

这样我们就可以开始编写代码了。
步骤 3:使用 IronXL 库自动调整列宽
IronXL库中的AutoSizeColumn方法调整列的宽度以适应其内容。 此方法根据单元格中使用的字体计算文本宽度。 如果系统中找不到确切的字体,它将尝试使用默认字体测量宽度。 如果找不到默认字体,它将尝试使用任何可用的字体。 但是,如果找不到字体,则会抛出异常。 它使用从零开始的列索引作为参数。 必须在 0 和 (ColumnCount - 1) 定义的范围内。 如果提供的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 fileImports 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代码解释
- 首先,我们使用
WorkBook.Load()方法加载FinancialSample.xlsx。 - 然后我们获取用于调整的列数。
- 我们遍历所有列索引以自动调整列宽。
- 最后,我们将结果保存为一个名为
autoResize.xlsx的新文件。
输出文件
下面您可以看到所有列都已自动调整大小并可见。

步骤 4:使用 IronXL 库自动调整行高
AutoSizeRow方法调整行的高度以适应其内容。 需要注意的是,此方法根据单元格中使用的字体计算文本高度。 如果系统中找不到确切的字体,它将尝试使用默认字体测量宽度。 如果找不到默认字体,它将尝试使用任何可用的字体。 但是,如果找不到字体,则会抛出异常。 它使用从零开始的行索引作为参数。 必须在 0 和 (RowCount - 1) 定义的范围内。 如果提供的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 fileImports 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代码解释
- 首先,我们使用
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");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")代码解释
- 使用
WorkBook.Load()函数加载FinancialSample.xlsx。 - 检索特定行和列以手动调整其高度和宽度。
- 设置所需的高度和宽度值。
- 将修改后的文件保存为
specificValue.xlsx。
输出 Excel 文件

许可
获取免费试用,免费使用所有 IronXL 功能 30 天。
获得的许可证必须放置在 appSettings.json 文件中:
{
"IronXL.License.LicenseKey": "myTrialKey"
}
结论
通过IronXL提供的AutoSizeRow等功能,开发者可以轻松确保Excel电子表格动态调整其包含的内容,无论是导入的数据、动态报告、用户生成的内容还是数据分析结果。
IronXL 与包括 .NET Core 和 Azure 在内的各种 .NET Framework的兼容性,确保开发人员能够将 Excel 自动化集成到多种应用程序中,而无需依赖于 Microsoft Office 或 Excel Interop。此外,IronXL 对多种 .NET 语言和平台的支持使其成为希望在各种开发环境中简化 Excel 操作任务的开发人员的多功能选择。
从本质上说,IronXL 让开发者能够在 Excel 自动化项目中提升生产力、精确性和灵活性,提供满足现代 C# 开发需求的全面功能套件。 无论是生成报告、分析数据还是呈现信息,IronXL 提供了在 C# 生态系统中实现 Excel 自动化所需的工具。

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。
相关文章



