在生产环境中测试,无水印。
随时随地满足您的需求。
获得30天的全功能产品。
几分钟内就能启动并运行。
在您的产品试用期间,全面访问我们的支持工程团队。
在数据驱动的当今世界,Microsoft Excel 仍然是企业和专业人士不可或缺的工具。无论是计算数字、创建报告还是可视化数据,Excel 的多功能性都是无与伦比的。 然而,在用 C# 对 Excel 文件进行编程操作时,开发人员往往会面临挑战。 这就是IronXL库发挥作用的地方,在C#环境中提供了一个无缝的Excel自动化解决方案。
IronXL 库来自 Iron Software,为C# .NET和VB.NET环境提供了直观的API,用于无缝处理Excel文档。 使用 IronXL.Excel,无需安装 Microsoft Office 或 Excel Interop 组件。 它能让开发人员毫不费力地读取、编辑和创建 Excel 电子表格文件,提供对各种 .NET Framework 的全面支持,包括 .NET 8、7、6、Core Frameworks 和 Azure 环境。
在本文中,我们将学习如何使用C#和IronXL自动调整Excel中的列宽和行高。
将IronXL库安装到项目中。
使用IronXL库自动调整列宽。
使用IronXL库自动调整行高。
IronXL 库是一个多功能的 .NET 库,旨在简化 C# 开发人员对 Excel 电子表格的操作。 IronXL.Excel 提供快速直观的 API,用户无需依赖 Office Interop 即可轻松访问、修改和生成 Excel 文件。它的兼容性扩展到各种 .NET Framework,包括 .NET Core 和 Azure,不需要任何特殊的依赖关系或安装 Microsoft Office。IronXL for .NET 支持 C#、VB.NET 和 F# 等多种 .NET 语言,可满足包括控制台、Web 和桌面应用程序在内的各种开发场景的需要。 此外,IronXL.Excel 的兼容性横跨不同平台,包括 Windows、Linux、macOS、Docker、Azure 和 AWS,使其成为寻求在不同环境中高效集成 Excel 的开发人员不可或缺的工具。
轻松集成:IronXL无缝集成到C#应用程序中,提供用于Excel自动化的简单而直观的API。 开发人员只需稍加学习即可快速上手。
读取和写入 Excel 文件:使用 IronXL,您可以轻松地从现有的 Excel 文件中读取数据,并将数据写入新的或现有的电子表格。 这种能力对于数据导入/导出和报告生成等任务至关重要。
格式化和样式:IronXL使您能够对Excel单元格应用格式和样式,包括字体、颜色、边框等。 这可确保您生成的 Excel 文件保持专业和精致的外观。
公式支持:需要对 Excel 数据执行复杂计算或应用公式吗? IronXL.Excel 支持 Excel 公式,允许您自动进行计算和数据操作。
首先,让我们创建一个 Visual Studio 项目,如下图所示。 从列表中选择控制台应用程序模板
提供项目名称和地点
从下拉菜单中选择所需的 .NET 版本,然后单击创建
从 Visual Studio NuGet 包管理器安装 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
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'dotnet add package IronXL.Excel --version 2024.3.20 Install-Package IronXL.Excel
有了这些,我们就可以开始编码了。
来自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);
}
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);
}
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
workBook.SaveAs("autoResize.xlsx") ' result file
首先,我们使用WorkBook.Load()方法加载FinancialSample.xlsx。
然后,我们得到需要调整列宽的单元格范围,在本例中,我们得到列数。
然后,我们遍历所有索引,自动调整列宽的大小
下面您可以看到所有栏目都是自动调整大小并可见的。
AutoSizeRow 方法调整行的高度以适应其内容。 值得注意的是,这种方法是根据单元格中使用的字体来计算文本高度的。 如果系统上没有准确的字体,它将尝试使用默认字体进行测量。 如果找不到默认字体,将尝试使用任何可用字体。 但是,如果找不到字体,就会出现异常。 它使用基于零的行索引作为参数。 它必须在由 0 和 (RowCount - 1) 定义的范围内。 如果提供的rowIndex超出有效范围,将抛出ArgumentException。 SixLabors.Fonts.FontException 是在机器上没有安装字体时抛出的异常
在下面的示例中,您可以看到一些行的大小没有适当固定数据。 现在让我们来看看自动拟合 excel 行高的 C# 代码。
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++)
{
workSheet.AutoSizeRow(i);
}
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++)
{
workSheet.AutoSizeRow(i);
}
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
workSheet.AutoSizeRow(i)
Next i
workBook.SaveAs("autoResizeRows.xlsx") ' result file
首先,我们使用WorkBook.Load()方法加载FinancialSample.xlsx。
然后,我们得到需要调整行高的单元格范围,在这种情况下,我们得到行数。
然后,我们遍历所有索引,自动调整行高的大小
除了自动调整行和列的大小外,IronXL 还提供将宽度和高度手动调整为特定行高值和特定列宽值的功能
using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
RangeRow row = workSheet.GetRow(0);
row.Height = 500; // Set height
RangeColumn col = workSheet.GetColumn(0);
col.Width = 5000; // Set width
workBook.SaveAs("specificValue.xlsx");
using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
RangeRow row = workSheet.GetRow(0);
row.Height = 500; // Set height
RangeColumn col = workSheet.GetColumn(0);
col.Width = 5000; // Set width
workBook.SaveAs("specificValue.xlsx");
Imports IronXL
' Load example spreadsheet
Private workBook As WorkBook = WorkBook.Load("FinancialSample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
Private row As RangeRow = workSheet.GetRow(0)
row.Height = 500 ' Set height
Dim col As RangeColumn = workSheet.GetColumn(0)
col.Width = 5000 ' Set width
workBook.SaveAs("specificValue.xlsx")
首先,我们使用WorkBook.Load()函数加载FinancialSample.xlsx。
然后我们得到需要调整行高的单元格范围,以及需要调整列宽的单元格范围
然后我们设置高度和宽度值
获得的许可证必须放在 appSettings.json 文件中
{
"IronXL.License.LicenseKey":"myTrialKey"
}
{
"IronXL.License.LicenseKey":"myTrialKey"
}
If True Then
"IronXL.License.LicenseKey":"myTrialKey"
End If
通过 IronXL 的 AutoSizeColumn 和 AutoSizeRow 等功能,开发人员可以轻松确保 Excel 电子表格根据其包含的内容动态调整,无论是导入数据、动态报告、用户生成的内容还是数据分析结果。
IronXL 兼容多种 .NET 框架,包括 .NET Core 和 Azure,确保开发人员可以将 Excel 自动化集成到各种应用程序中,而无需依赖 Microsoft Office 或 Excel Interop。此外,IronXL 对多种 .NET 语言和平台的支持,使其成为开发人员在不同环境中简化 Excel 操作任务的多功能选择。
本质上,IronXL使开发人员能够提高在Excel自动化项目中的生产力、准确性和灵活性,提供了一整套功能来满足现代C#开发的需求。 无论是生成报告、分析数据,还是呈现信息,IronXL 都提供了在 C# 生态系统中进行 Excel 自动化所需的工具。