使用 C# 删除 excel 中的空行
Removing empty rows in excel using C#
我想在程序执行结束时删除空行。具体来说,我在预定义的 excel 工作表中使用 C# 计算后插入了一些结果。最后,我需要以编程方式 delete/remove 空行。任何人都可以建议解决方案。我的代码有点大,所以我无法在此处包含。为了您的理解,我给出了 excel 的一些输入和输出视图。在下面的输出 Excel 行 D 和 E 中有空行我想以编程方式删除而不提及范围。
输入Excel/预定义Excel文件
A 1 2 3 4
B
C
D
E
输出Excel
A 1 2 3 4
B ABc cde nAC 123
C cdf fed x2 123
D
E
您可以使用范围对象来完成。我在这里假设您正在使用 Excel 互操作。
假设你打开了你的书,然后设置范围然后删除它它应该看起来像这样
ApplicationClass excel = new ApplicationClass();
//...
Microsoft.Office.Interop.Excel.Range cel = (Range)excel.Cells[rowIndex, columnIndex];
cel.Delete();
您也可以尝试使用:
for(int i = 1; i <=20; i++)
{
excelRange = (Excel.Range)excelWorkSheet.Cells[i, 1];
if (!string.IsNullOrEmpty(excelRange.Text.ToString()))
{
((Range)excelWorkSheet.Rows[i]).Delete(excelRange);
}
}
查看下面的link
和
这里 "Something" 是你的空值。
希望对您有所帮助。
下面的代码完美运行并为指定的行号和列号创建一个新的空白行:
Excel.Range rng = (Excel.Range)xlWorkSheet1.Cells[RowNumber, ColumnNumber];
Excel.Range Row1 = rng.EntireRow;
Row1.Insert(Excel.XlInsertShiftDirection.xlShiftDown, false);
您可以使用以下代码删除 Excel 文件中的空行
xlApp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook excelWorkbook = xlApp.Workbooks.Open(fileName);
Microsoft.Office.Interop.Excel._Worksheet sheet = excelWorkbook.Sheets[1];
var LastRow = sheet.UsedRange.Rows.Count;
LastRow = LastRow + sheet.UsedRange.Row - 1;
for (int i = 1; i <= LastRow; i++)
{
if (application.WorksheetFunction.CountA(sheet.Rows[i]) == 0)
(sheet.Rows[i] as Microsoft.Office.Interop.Excel.Range).Delete();
}
从 Excel 工作表中删除空行和空列的扩展方法。
/// <summary>
/// Deletes empty rows and columns from the end of the given worksheet
/// </summary>
public static void Trim(this Excel.Worksheet worksheet)
{
worksheet.TrimColumns();
worksheet.TrimRows();
}
/// <summary>
/// Deletes empty rows from the end of the given worksheet
/// </summary>
public static void TrimRows(this Excel.Worksheet worksheet)
{
Excel.Range range = worksheet.UsedRange;
while(worksheet.Application.WorksheetFunction.CountA(range.Rows[range.Rows.Count]) == 0)
(range.Rows[range.Rows.Count] as Excel.Range).Delete();
}
/// <summary>
/// Deletes empty columns from the end of the given worksheet
/// </summary>
public static void TrimColumns(this Excel.Worksheet worksheet)
{
Excel.Range range = worksheet.UsedRange;
while(worksheet.Application.WorksheetFunction.CountA(range.Columns[range.Columns.Count]) == 0)
(range.Columns[range.Columns.Count] as Excel.Range).Delete();
}
我想在程序执行结束时删除空行。具体来说,我在预定义的 excel 工作表中使用 C# 计算后插入了一些结果。最后,我需要以编程方式 delete/remove 空行。任何人都可以建议解决方案。我的代码有点大,所以我无法在此处包含。为了您的理解,我给出了 excel 的一些输入和输出视图。在下面的输出 Excel 行 D 和 E 中有空行我想以编程方式删除而不提及范围。
输入Excel/预定义Excel文件
A 1 2 3 4
B
C
D
E
输出Excel
A 1 2 3 4
B ABc cde nAC 123
C cdf fed x2 123
D
E
您可以使用范围对象来完成。我在这里假设您正在使用 Excel 互操作。
假设你打开了你的书,然后设置范围然后删除它它应该看起来像这样
ApplicationClass excel = new ApplicationClass();
//...
Microsoft.Office.Interop.Excel.Range cel = (Range)excel.Cells[rowIndex, columnIndex];
cel.Delete();
您也可以尝试使用:
for(int i = 1; i <=20; i++)
{
excelRange = (Excel.Range)excelWorkSheet.Cells[i, 1];
if (!string.IsNullOrEmpty(excelRange.Text.ToString()))
{
((Range)excelWorkSheet.Rows[i]).Delete(excelRange);
}
}
查看下面的link
和
这里 "Something" 是你的空值。
希望对您有所帮助。
下面的代码完美运行并为指定的行号和列号创建一个新的空白行:
Excel.Range rng = (Excel.Range)xlWorkSheet1.Cells[RowNumber, ColumnNumber];
Excel.Range Row1 = rng.EntireRow;
Row1.Insert(Excel.XlInsertShiftDirection.xlShiftDown, false);
您可以使用以下代码删除 Excel 文件中的空行
xlApp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook excelWorkbook = xlApp.Workbooks.Open(fileName);
Microsoft.Office.Interop.Excel._Worksheet sheet = excelWorkbook.Sheets[1];
var LastRow = sheet.UsedRange.Rows.Count;
LastRow = LastRow + sheet.UsedRange.Row - 1;
for (int i = 1; i <= LastRow; i++)
{
if (application.WorksheetFunction.CountA(sheet.Rows[i]) == 0)
(sheet.Rows[i] as Microsoft.Office.Interop.Excel.Range).Delete();
}
从 Excel 工作表中删除空行和空列的扩展方法。
/// <summary>
/// Deletes empty rows and columns from the end of the given worksheet
/// </summary>
public static void Trim(this Excel.Worksheet worksheet)
{
worksheet.TrimColumns();
worksheet.TrimRows();
}
/// <summary>
/// Deletes empty rows from the end of the given worksheet
/// </summary>
public static void TrimRows(this Excel.Worksheet worksheet)
{
Excel.Range range = worksheet.UsedRange;
while(worksheet.Application.WorksheetFunction.CountA(range.Rows[range.Rows.Count]) == 0)
(range.Rows[range.Rows.Count] as Excel.Range).Delete();
}
/// <summary>
/// Deletes empty columns from the end of the given worksheet
/// </summary>
public static void TrimColumns(this Excel.Worksheet worksheet)
{
Excel.Range range = worksheet.UsedRange;
while(worksheet.Application.WorksheetFunction.CountA(range.Columns[range.Columns.Count]) == 0)
(range.Columns[range.Columns.Count] as Excel.Range).Delete();
}