/// <summary> /// /// </summary> public static void clearSheet(Worksheet firstWS) { Queue <Range> rangeToDelQueue = new Queue <Range>(); int rowsMaxCount; rowsMaxCount = firstWS.UsedRange.Rows.Count; Usual_Excel_Helper uEHelper = new Usual_Excel_Helper(firstWS); //获取最大列 int maxColIndex = getMaxColIndexOfThe4thRowOfAR(firstWS); //判断是否有空行。 for (int i = 5; i <= rowsMaxCount; i++) { if (uEHelper.isBlankRangeTheSpecificRow(i, 1, maxColIndex)) { //只要上一列不是 //删除掉此行。 //判断上一行中的A列是否为工号。 string temp = uEHelper.getSpecificCellValue("A" + (i - 1).ToString()); if ("工号:".Equals(temp)) { continue; } //获取该行。 Range rangeToDel = (Microsoft.Office.Interop.Excel.Range)uEHelper.WS.Rows[i, System.Type.Missing]; //不为工号 rangeToDelQueue.Enqueue(rangeToDel); } } Range rangeToDelete; //开始删除空行。 while (rangeToDelQueue.Count > 0) { rangeToDelete = rangeToDelQueue.Dequeue(); rangeToDelete.Delete(XlDeleteShiftDirection.xlShiftUp); } }