使用IRONXL

如何使用C#自动调整Excel单元格大小

发布 2024年四月29日
分享:

简介

在数据驱动的当今世界,Microsoft Excel 仍然是企业和专业人士不可或缺的工具。无论是计算数字、创建报表还是可视化数据,Excel 的多功能性都是无与伦比的。然而,当涉及到用 C# 对 Excel 文件进行编程操作时,开发人员往往会面临挑战。这就是 铁XL 库发挥作用,在 C# 环境中为 Excel 自动化提供无缝解决方案。

铁XL铁软件 IronXL 提供了直观的 API,可在 C# .NET 和 VB.NET 环境中无缝处理 Excel 文档。使用 IronXL,无需安装 Microsoft Office 或 Excel Interop 组件。它能让开发人员毫不费力地读取、编辑和创建 Excel 电子表格文件,为各种 .NET 框架提供全面支持,包括 .NET 8、7、6、核心框架和 Azure 环境。

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

1.创建一个 Visual Studio 在 Excel 工作表中演示自动拟合单元格的项目。

2.安装 IronXL 项目的图书馆。

3.使用 IronXL 库自动拟合列宽。

4.使用 IronXL 库自动拟合行高。

5.使用 IronXL 库手动设置列宽和行高。

IronXL

铁XL IronXL 库是一个多功能的 .NET 库,旨在简化 C# 开发人员对 Excel 电子表格的操作。IronXL 提供快速直观的 API,用户无需依赖 Office Interop 即可轻松访问、修改和生成 Excel 文件。它的兼容性扩展到各种.NET框架,包括.NET Core和Azure,不需要任何特殊的依赖关系或安装Microsoft Office。IronXL支持C#、VB.NET和F#等多种.NET语言,可满足包括控制台、Web和桌面应用程序在内的各种开发场景。此外,IronXL 的兼容性跨越不同平台,包括 Windows、Linux、macOS、Docker、Azure 和 AWS,使其成为寻求在不同环境中高效集成 Excel 的开发人员不可或缺的工具。

IronXL 库的主要功能

  1. 轻松集成IronXL 与 C# 应用程序无缝集成,为 Excel 自动化提供简单直观的应用程序接口。开发人员只需稍加学习,即可快速上手。

  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# 中添加一个 Console Application 类型的新项目。

提供项目名称和地点

如何使用 C# 在 Excel 中自动拟合单元格:图 2 - 接下来,指定项目名称和位置。

从下拉菜单中选择所需的 .NET 版本,然后单击创建

如何使用 C# 在 Excel 中自动拟合单元格:图 3 - 然后,选择所需的 .NET Framework 版本并点击创建。

第二步:在项目中安装 IronXL 库。

安装 IronXL 从 Visual Studio NuGet 软件包管理器中获取库

如何使用 C# 在 Excel 中自动拟合单元格:图 4 - 在 NuGet Package Manager 的搜索栏中搜索"IronXL",使用 Manage NuGet Package for Solution 安装 IronXL,然后选择项目并点击 Install(安装)按钮。

也可使用 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
VB   C#

如何使用 C# 在 Excel 中自动拟合单元格:图 5 - IronXL.Excel NuGet 软件包

有了这些,我们就可以开始编码了。

第 3 步:使用 IronXL 库自动拟合列宽

使用 IronXL 库中的AutoSizeColumn方法来自动调整列宽。 IronXL 库调整列宽以适应其内容。该方法根据单元格中使用的字体计算文本宽度。如果系统中没有准确的字体,它将尝试使用默认字体进行测量。如果找不到默认字体,则会尝试使用任何可用字体。但是,如果找不到字体,则会出现异常。它使用基于零的列索引作为参数。它必须在 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);
}
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
VB   C#

代码说明

1.最初,我们使用 WorkBook.Load 加载 FinancialSample.xlsx() 方法。

2.然后,我们会得到需要调整列宽的单元格区域,在这种情况下,我们会得到列数。

3.然后遍历所有索引,自动调整列宽大小

4.然后将结果保存到一个新文件中,文件名为 autoResize.xlsx

输出文件

下图显示了所有列的自动大小和可见性。

如何使用 C# 在 Excel 中自动调整单元格:图 7 - 自动调整列宽的 Excel 输出。

第 4 步:使用 IronXL 库自动拟合行高。

AutoSizeRow 方法可调整行的高度,以适应其内容。需要注意的是,该方法是根据单元格中使用的字体来计算文本高度的。如果系统中没有准确的字体,它将尝试使用默认字体进行测量。如果找不到默认字体,则会尝试使用任何可用字体。但是,如果找不到字体,就会出现异常。它使用基于零的行索引作为参数。它必须在 0 和 (行数 - 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++)
{
    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
VB   C#

代码说明

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;
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")
VB   C#

代码说明

1.最初,我们使用 WorkBook.Load 加载 FinancialSample.xlsx() 功能。

2.然后,我们会得到需要调整行高的单元格区域,以及需要调整列宽的单元格区域

3.然后设置高度和宽度值

4.然后将结果保存到一个新文件中,文件名为 specificValue.xlsx

输出 Excel 文件

如何使用 C# 在 Excel 中自动调整单元格:图 11 - 使用手动调整列宽和列高的 Excel 输出。

Licensing

IronXL.

获得的许可证必须放在 appSettings.json 文件中

{
  "IronXL.License.LicenseKey":"myTrialKey"
}
{
  "IronXL.License.LicenseKey":"myTrialKey"
}
If True Then
  "IronXL.License.LicenseKey":"myTrialKey"
End If
VB   C#

结论

利用AutoSizeColumnAutoSizeRow等功能,从 铁XL通过该软件,开发人员可以毫不费力地确保 Excel 电子表格能根据其包含的内容进行动态调整,无论是导入的数据、动态报告、用户生成的内容还是数据分析结果。

铁XLIronXL 与各种 .NET 框架(包括 .NET Core 和 Azure)兼容,确保开发人员可以将 Excel 自动化集成到各种应用程序中,而无需依赖 Microsoft Office 或 Excel Interop。此外,IronXL 对多种 .NET 语言和平台的支持使其成为开发人员在不同环境中简化 Excel 操作任务的多功能选择。

从本质上讲,IronXL IronXL 它提供了一套全面的功能,可满足现代 C# 开发的需求,使开发人员能够提高 Excel 自动化项目的生产率、准确性和灵活性。无论是生成报表、分析数据,还是展示信息,Excel 都能为您提供强大的功能、 IronXL 提供了在 C# 生态系统内实现 Excel 自动化所需的工具。

< 前一页
如何在C#中将Excel导入到SQL Server
下一步 >
如何在Python中解析Excel文件

准备开始了吗? 版本: 2024.9 刚刚发布

免费NuGet下载 总下载量: 988,189 查看许可证 >