我正在使用 excel.interop.object 库 9.0 在 c# 中操作我的 xls 文件
假设我有一个有 5 张纸的 xls。所有工作表都有一些行。
我正在使用以下代码从我的 xls 中的每个工作表中删除前 2 行
Excel.Application excelApp = new Excel.Application();
Excel.Workbook excelWorkbook = excelApp.Workbooks.Open(mstrFilePath, 1, false, 5, "", "", false, Excel.XlPlatform.xlWindows, "", true, false, null, false);
try
{
Excel.Sheets excelWorkSheet = excelWorkbook.Sheets;
foreach (Excel.Worksheet work in excelWorkSheet)
{
Excel.Range range = work.get_Range("A1", "A3");
Excel.Range entireRow = range.EntireRow; // update
for (int i = 1; i <= 3; i++)
{
entireRow.Delete(Excel.XlDirection.xlUp);
}
}
//excelWorkbook.Close(false, mstrFilePath, null);
}
catch (Exception ex)
{
}
finally
{
excelApp.Quit();
}
但是从工作表 3 中删除 2 行而不从任何其他工作表中删除任何行是错误的。
这里出了什么问题?
最佳答案
在您的代码中删除 for 循环(for (int i = 1; i <= 3; i++)) 它会起作用。
您已经选择了从 A1 到 A3 的范围(三行).........
Excel.Range range = work.get_Range("A1", "A3");
所以不需要像下面一样为相同的范围再次循环......
//for (int i = 1; i <= 3; i++)
//{
entireRow.Delete(Microsoft.Office.Interop.Excel.XlDirection.xlUp);
//}
关于c# - 使用 excel.interop.object 库从 xls 中删除前 3 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15335799/