使用IRONXL

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

发布 2024年四月29日
分享:

介绍

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

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

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

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

  1. 安装IronXL项目库。

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

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

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

IronXL

铁XLlibrary 是一个通用的 .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 库的主要功能

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

  2. 读写 Excel 文件:使用 IronXL.Excel,您可以毫不费力地从现有 Excel 文件中读取数据,并将数据写入新的或现有电子表格。 这种能力对于数据导入/导出和报告生成等任务至关重要。

  3. 格式和样式:IronXL.Excel 使您能够对 Excel 单元格应用格式和样式,包括字体、颜色、边框等。 这可确保您生成的 Excel 文件保持专业和精致的外观。

  4. 公式支持:需要对 Excel 数据进行复杂计算或应用公式? IronXL.Excel 支持 Excel 公式,允许您自动进行计算和数据操作。

  5. 自适应单元格:IronXL.Excel 提供的便捷功能之一是在 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库调整列的宽度以适应其内容。 该方法根据单元格中使用的字体计算文本宽度。 如果系统上没有准确的字体,它将尝试使用默认字体进行测量。 如果找不到默认字体,将尝试使用任何可用字体。 但是,如果找不到字体,就会出现异常。 它使用基于零的列索引作为参数。 翻译必须在 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 输出。

许可

IronXL.

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

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

结论

自动调整列大小和自动调整行大小等功能来自于铁XL现在,无论是导入数据、动态报告、用户生成的内容,还是数据分析结果,开发人员都可以毫不费力地确保 Excel 电子表格根据所包含的内容进行动态调整。

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

实质上IronXL在 Excel 自动化项目中,《Excel 自动化》可帮助开发人员提高工作效率、准确性和灵活性,提供一整套功能以满足现代 C# 开发的需求。 无论是生成报告、分析数据还是展示信息、IronXL提供了在 C# 生态系统内实现 Excel 自动化所需的工具。

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

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

免费NuGet下载 总下载量: 1,111,773 查看许可证 >