使用excel.interop.object库从xls中删除前3行

我正在使用excel.interop.object库9.0来操纵我的xls文件在c#

如果假设我有一个xls有5张。 所有表有一些行。

我正在使用以下代码来删除我的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 ++))在你的代码中它将工作。

您已经select从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); //}