private void openCartAccess(int sheetID) { var xApp = new Microsoft.Office.Interop.Excel.Application(); xApp.Visible = false; var xBook = xApp.Workbooks.Open(getExcel()); Dictionary <int, List <indexColumn> > sheetColumns = ViewState[vs_SheetColumn] as Dictionary <int, List <indexColumn> >; List <indexColumn> AllColumns; bool existSheet = sheetColumns.TryGetValue(sheetID, out AllColumns); if (existSheet) { try { Business.Common.CommonBusiness CB = new Business.Common.CommonBusiness(); var sheet = (Microsoft.Office.Interop.Excel.Worksheet)xBook.Worksheets.Item[sheetID]; int lastRow = sheet.Cells.SpecialCells(XlCellType.xlCellTypeLastCell, Type.Missing).Row; int lastCol = 1; int tempLast = sheet.Cells.SpecialCells(XlCellType.xlCellTypeLastCell, Type.Missing).Column; for (int col = 1; col < tempLast; col++) { if ((sheet.Cells[3, col] as Microsoft.Office.Interop.Excel.Range).Value2 == null) { break; } else { lastCol++; } } int stcodeColumnNumber = Convert.ToInt32(AllColumns.FindLast(c => c.columnName == "stcode").selectedInExcel); bool res; for (int i = firstRow + 1; i < lastRow; i++) { var stcode = (sheet.Cells[i, stcodeColumnNumber] as Microsoft.Office.Interop.Excel.Range).Value2; res = CB.openCartAccess(Convert.ToString(stcode)); (sheet.Cells[i, lastCol + 1] as Microsoft.Office.Interop.Excel.Range).Value2 = "دسترسی باز " + (res ? "شد" : "نشد"); } (sheet.Cells[1, 1] as Microsoft.Office.Interop.Excel.Range).Value2 = null; xBook.Close(false); xApp.Quit(); } catch (Exception ex) { showAlert(ex.Message); } } }