在本文中,我将解释如何使用 C# 删除 Excel 文件中的空白行和列。我还将解释如何在删除空白行和列的同时自动更新引用(用于公式、图表和表格)。
用于删除空白行和列的 C# API
Aspose.Cells for .NET 是一个著名的电子表格操作 API,可让您在 .NET 应用程序中创建和处理 Excel 文件。该 API 允许您在几行代码中删除 Excel 文件中的空白行和列。您可以 下载 API 的二进制文件或使用 NuGet 安装它。
PM> Install-Package Aspose.Cells
使用 C# 删除 Excel 中的空白行
以下是使用 C# 删除 Excel 中所有空白行的步骤。
- 使用 Workbook 对象打开一个 Excel 文件。
- 访问具有空白行的工作表。可以按索引(从零开始)或按名称访问工作表。
- 调用 Cells.DeleteBlankRows() 方法删除所有不包含任何数据的空白行。
以下示例代码显示了如何使用 C# 在 Excel 中删除空白行。
using Aspose.Cells;
// 打开现有的 Excel 文件。
Workbook wb = new Workbook("SampleInput.xlsx");
// 获取电子表格中的工作表集合。
WorksheetCollection sheets = wb.Worksheets;
// 通过索引从 WorksheetCollection 中获取第一个 Worksheet。
Worksheet sheet = sheets[0];
// 或按名称。
// 工作表 sheet = sheet["Sheet1"];
// 从工作表中删除空白行。
sheet.Cells.DeleteBlankRows();
// 保存excel文件。
wb.Save("SampleOutput.xlsx");
请注意 Cells.DeleteBlankRows 方法会删除空白行,即使对它们应用了某种格式。它还会删除数据下方的格式化空白行。
如果要从 Excel 文档中的所有工作表中删除空白行,只需遍历 WorksheetCollection 并在每个工作表上调用 DeleteBlankRows 方法,如下代码所示:
// 打开现有的 Excel 文件。
Workbook workbook = new Workbook("SampleInput.xlsx");
// 遍历工作表。
foreach (Worksheet sheet in workbook.Worksheets)
{
// 从工作表中删除空白行。
sheet.Cells.DeleteBlankRows();
}
// 保存excel文件。
workbook.Save("SampleOutput.xlsx");
删除空白行时自动更新参考
删除空白行会破坏公式、图表和表格中的引用。例如,第二个工作表中的单元格 B2 有一个公式 =Sheet1!C3,它引用了第一个工作表中的单元格 C3,如下图所示。
如果我们删除 Sheet1 中的空白行,值 lima@gmail.com 将移动到单元格 C1。但公式 (=Sheet1!C3) 不会更新,单元格 B2 将包含无效值,如下所示。
我们可以通过使用 DeleteOptions.UpdateReference 属性并将其设置为 true 来避免此问题。它将确保在删除空白行时更新引用。以下示例代码展示了如何使用 DeleteOptions.UpdateReference 属性。
// 打开现有的 Excel 文件。
Workbook wb = new Workbook("SampleInput.xlsx");
// 获取电子表格中的工作表集合。
WorksheetCollection sheets = wb.Worksheets;
// 通过索引从 WorksheetCollection 中获取第一个 Worksheet。
Worksheet sheet = sheets[0];
// 此选项将确保引用(在公式、图表中)
// 在删除空白行时更新。
DeleteOptions options = new DeleteOptions();
options.UpdateReference = true;
// 从工作表中删除空白行。
sheet.Cells.DeleteBlankRows(options);
// 保存excel文件。
wb.Save("SampleOutput.xlsx");
如下图所示,公式已更新,单元格 B2 包含有效值。
使用 C# 删除 Excel 中的空白列
删除空白列的步骤与删除空白行的步骤相同。我们使用 Cells.DeleteBlankColumns 方法删除所有不包含任何数据的空白列。以下示例代码显示了如何在 C# 中删除空白行和列。
// 打开现有的 Excel 文件。
Workbook wb = new Workbook("SampleInput.xlsx");
// 获取电子表格中的工作表集合。
WorksheetCollection sheets = wb.Worksheets;
// 通过索引从 WorksheetCollection 中获取第一个 Worksheet。
Worksheet sheet = sheets[0];
// 此选项将确保引用(在公式、图表中)
// 在删除空白行和列时更新。
DeleteOptions options = new DeleteOptions();
options.UpdateReference = true;
// 删除空白行和列。
sheet.Cells.DeleteBlankRows(options);
sheet.Cells.DeleteBlankColumns(options);
// 计算工作簿的公式
wb.CalculateFormula();
// 保存excel文件。
wb.Save("SampleOutput.xlsx");
结论
在本文中,您学习了如何使用 C# 删除 Excel 文件中的空白行和列。此外,您还学习了如何在删除空白行和列的同时自动更新引用(用于公式、图表和表格)。请查看 Aspose.Cells for .NET 的 文档 了解更多信息。如果您有任何问题,请随时在我们的 支持论坛 上发布。我们将在几个小时内回复他们。