示例#1
0
        /// <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);
            }
        }