有一份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了,然后循环它不就得了