当前位置: 代码迷 >> C# >> excel设立活动sheet
  详细解决方案

excel设立活动sheet

热度:82   发布时间:2016-05-05 03:16:37.0
excel设置活动sheet
有一份EXCEL数据需要导入数据库,里面要分别处理多个SHEET的数据,我写了一段代码,第一步是先得到所有的SHEET数,然后处理第一个sheet,然后循环,再处理第二个,一直到最后一个,但是没有实现我要的效果,麻烦各位大神看看我下面哪里写错了,谢谢。
 /// <summary>
        /// 当前打开的excel文件的sheet的数量
        /// </summary>
        /// <returns>当前打开的excel文件的sheet的数量</returns>
        public int GetNumOfWorksheets()
        {
            try
            {
                if ((ExcelApp != null) && (ExcelApp.ActiveWorkbook != null))
                {
                    int iCnt = 0;
                    Sheets sheets = workbook.Worksheets;

                    iCnt = sheets.Count;
                    return iCnt;
                }
                return 0;
            }
            catch
            {
                return 0;
            }
        }

上面是获得当前打开EXCEL的sheet数量,
      /// <summary>
        /// 设置当前要操作的worksheet
        /// </summary>
        /// <param name="strSheetName">当前要操作的worksheet名称</param>
        /// <returns>设置是否成功</returns>
        /// 
       public void SetActiveTworkSheet(int i)
        {
            try
            {
                if ((ExcelApp != null) && (ExcelApp.ActiveWorkbook != null))
                {
                 
                    Sheets sheets = workbook.Worksheets;

                   Worksheet wksheet = (Worksheet)sheets.get_Item(i);

                }
          
            }
            catch
            {
         
            }
        }这一段是我设置当前要操作的sheet

  clsExcelOperator objExcelOperator = new clsExcelOperator(FileName);

                int tableCount = objExcelOperator.GetNumOfWorksheets(); //获取sheet总数量

                iTableCount = this.GetTableCount();
                iRowsCount = this.GetRowsCount();

                for (int i = 0; i < tableCount; i++)
                {
                   objExcelOperator22.SetActiveTworkSheet(i);
                   this.GetMainIntoArr();  //处理sheet里数据的方法
                   this.GetDetailInfoToArr();//处理sheet里数据的方法
                }
上面这一段是我调用2个方法的地方
但是循环的时候,一直处理第一个sheet,并没有处理第二个sheet的数据,这是怎么回事?
------解决思路----------------------
Sheets sheets = workbook.Worksheets;
这不已经获取到了所有的sheet了,然后循环它不就得了
  相关解决方案