C# 使用C语言删除excel中的空行#
我想在程序执行结束时删除空行。在详细介绍中,我在预定义的excel表格中使用C#插入了一些计算后的结果。最后,我需要通过编程删除/删除空行。有人能提出解决办法吗。我的代码有点大,所以我无法包含在这里。为了您的理解,我提供了一些excel的输入和输出视图。在下面的Excel输出中,D和E行有空行,我想通过编程删除,但不提及范围 输入Excel/预定义的Excel文件C# 使用C语言删除excel中的空行#,c#,excel,null,delete-row,C#,Excel,Null,Delete Row,我想在程序执行结束时删除空行。在详细介绍中,我在预定义的excel表格中使用C#插入了一些计算后的结果。最后,我需要通过编程删除/删除空行。有人能提出解决办法吗。我的代码有点大,所以我无法包含在这里。为了您的理解,我提供了一些excel的输入和输出视图。在下面的Excel输出中,D和E行有空行,我想通过编程删除,但不提及范围 输入Excel/预定义的Excel文件 A 1 2 3 4 B C D E 输出Excel A 1 2 3 4 B ABc cde n
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);
}
}
for(int i=1;i以下代码工作正常,为指定的行号和列号创建一个新的空行:
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();
}
xlApp=new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook excelWorkbook=xlApp.Workbooks.Open(文件名);
Microsoft.Office.Interop.Excel.\u工作表sheet=excelWorkbook.Sheets[1];
var LastRow=sheet.UsedRange.Rows.Count;
LastRow=LastRow+sheet.UsedRange.Row-1;
对于(int i=1;i扩展方法,从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.工作表)
{
worksheet.trimpolumns();
工作表.TrimRows();
}
///
///从给定工作表的末尾删除空行
///
公共静态行(此Excel.工作表)
{
Excel.Range=worksheet.UsedRange;
while(worksheet.Application.WorksheetFunction.CountA(range.Rows[range.Rows.Count])==0)
(range.Rows[range.Rows.Count]作为Excel.range).Delete();
}
///
///从给定工作表的末尾删除空列
///
公共静态列(此Excel.工作表)
{
Excel.Range=worksheet.UsedRange;
while(worksheet.Application.WorksheetFunction.CountA(range.Columns[range.Columns.Count])==0)
(range.Columns[range.Columns.Count]作为Excel.range).Delete();
}
您甚至没有提到创建excel文件所使用的库。我只是将数据插入到预定义的excel模板中,还使用Microsoft.Office.Interop.excel引用导入excel。请看这里:您能知道运行时输入的行数吗?我不知道行数,只需要在程序中找到空行即可在包含(范围)excel.Cells[rowIndex,columnIndex]时,我遇到了一个错误,您能帮我解决这个问题吗。在第二个解决方案中,我需要找到null值或somestring。您是否试图将somestring称为null?我尝试了社交msdn,但当我在下面几行尝试时,我遇到了这个错误如果(application.WorksheetFunction.CountA(exlwooksheet.Rows[i])==0)(exlwooksheet.Rows[i]为Microsoft.Office.Interop.Excel.Range)。Delete();VikrantMore您可以查看并帮助我解决此问题吗?