我正在使用excel.interop.object库9.0在c#中操作我的xls文件
如果我有一张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行而不删除任何其他表中的任何行是行为不端。
这里出了什么问题?
答案 0 :(得分:6)
删除 for循环(对于(int i = 1; i&lt; = 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);
//}