private void ImportarArquivo(Boolean escritorio, Int32 codEscritorio)
    {
        if (fupArquivo.HasFile)
        {
            #region Valida o tipo de arquivo

            if (Tools.GetFileExtension(fupArquivo.FileName).ToUpper() != ".XLS" && Tools.GetFileExtension(fupArquivo.FileName).ToUpper() != ".XLSX")
                throw new Exception("O arquivo informado é inválido.");

            #endregion

            #region Declaração de variáveis

            HSSFWorkbook planilha_XLS = null;
            XSSFWorkbook planilha_XLSX = null;
            List<MMAA.Pedidos.Model.Processo> processos = null;
            Boolean excel_XLSX = false;
            String nomeArquivo = String.Empty;
            String nomeArquivoOriginal = String.Empty;
            String tempPath = String.Empty;
            Int32 row_Cabecalho = 0;
            Int32 row_PrimeiraLinha = 1;
            MMAA.Pedidos.Model.ArquivoImportacao arquivo = null;
            MMAA.Pedidos.Negocio.ConciliacaoUpload business = null;
            Int32 codArquivo = 0;
            Int32 codConciliacao = 1;
            Int32 codUsuario = 3;
            String configCampos = String.Empty;
            List<String> listCampos = null;
            Int32 qtdRegistros = 0;
            Int32 colIndex = -1;

            #endregion

            try
            {
                #region Inicialização de objetos

                processos = new List<MMAA.Pedidos.Model.Processo>();
                arquivo = new MMAA.Pedidos.Model.ArquivoImportacao();
                business = new MMAA.Pedidos.Negocio.ConciliacaoUpload();

                #endregion

                #region Parâmetros de upload e importação

                tempPath = System.Configuration.ConfigurationSettings.AppSettings["Relatorio.Path"];
                nomeArquivoOriginal = fupArquivo.FileName;
                excel_XLSX = (Tools.GetFileExtension(nomeArquivoOriginal).ToUpper() == ".XLSX");

                if (escritorio)
                {
                    nomeArquivo = Server.MapPath("~") + "\\" + tempPath + "\\" + "ImportacaoEscritorio_" + DateTime.Now.ToFileTime().ToString() + Tools.GetFileExtension(nomeArquivoOriginal);
                    configCampos = System.Configuration.ConfigurationSettings.AppSettings["Conciliacao.ImportacaoEscritorio.Campos"];
                }
                else
                {
                    nomeArquivo = Server.MapPath("~") + "\\" + tempPath + "\\" + "ImportacaoMMAA_" + DateTime.Now.ToFileTime().ToString() + Tools.GetFileExtension(nomeArquivoOriginal);
                    configCampos = System.Configuration.ConfigurationSettings.AppSettings["Conciliacao.ImportacaoMMAA.Campos"];
                }

                listCampos = configCampos.Split(',').ToList<String>();

                #endregion

                #region Upload e inclusão do arquivo

                // FAZ O UPLOAD DO ARQUIVO
                fupArquivo.SaveAs(nomeArquivo);

                // INCLUI O ARQUIVO NA CONCILIAÇÃO
                arquivo.Cd_Conciliacao = codConciliacao;
                arquivo.Cd_Escritorio = codEscritorio;
                arquivo.Nm_Arquivo = nomeArquivo;
                arquivo.Nm_ArquivoOriginal = nomeArquivoOriginal;
                arquivo.Qtd_Tamanho = (Int32)fupArquivo.FileContent.Length;
                arquivo.Qtd_Registros = 0;
                codArquivo = business.IncluirArquivo(arquivo, codUsuario);

                #endregion

                #region Importação dos dados do arquivo

                if (excel_XLSX)
                {
                    #region Excel XLSX

                    using (FileStream file = new FileStream(nomeArquivo, FileMode.Open, FileAccess.Read))
                    {
                        planilha_XLSX = new XSSFWorkbook(file);
                    }

                    ISheet sheet_XLSX = planilha_XLSX.GetSheetAt(0);

                    for (Int32 i = row_PrimeiraLinha; i <= sheet_XLSX.LastRowNum; i++)
                    {
                        XSSFRow row_XLSX = (XSSFRow)sheet_XLSX.GetRow(i);

                        if (row_XLSX != null)
                        {
                            MMAA.Pedidos.Model.Processo processo = new MMAA.Pedidos.Model.Processo();

                            // N.º PASTA
                            colIndex = listCampos.IndexOf("NR_PASTA");
                            if (colIndex > -1)
                            {
                                try
                                {
                                    if (((XSSFRow)sheet_XLSX.GetRow(i)).Cells[colIndex].CellType == CellType.NUMERIC)
                                        processo.NrPasta = ((XSSFRow)sheet_XLSX.GetRow(i)).Cells[colIndex].NumericCellValue.ToString();
                                    else
                                        processo.NrPasta = ((XSSFRow)sheet_XLSX.GetRow(i)).Cells[colIndex].StringCellValue;
                                }
                                catch { /*throw ex;*/ }
                            }
                            if (!String.IsNullOrEmpty(processo.NrPasta))
                            {
                                // CÓD. PROCESSO
                                colIndex = listCampos.IndexOf("CD_PROCESSO");
                                if (colIndex > -1)
                                {
                                    try
                                    {
                                        if (((XSSFRow)sheet_XLSX.GetRow(i)).Cells[colIndex].CellType == CellType.NUMERIC)
                                            processo.CdProcesso = Int32.Parse(((XSSFRow)sheet_XLSX.GetRow(i)).Cells[colIndex].NumericCellValue.ToString());
                                        else
                                            processo.CdProcesso = Int32.Parse(((XSSFRow)sheet_XLSX.GetRow(i)).Cells[colIndex].StringCellValue);
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // N.º CLIENTE
                                colIndex = listCampos.IndexOf("NR_REFCLIENTE");
                                if (colIndex > -1)
                                {
                                    try
                                    {
                                        if (((XSSFRow)sheet_XLSX.GetRow(i)).Cells[colIndex].CellType == CellType.NUMERIC)
                                            processo.NrCliente = ((XSSFRow)sheet_XLSX.GetRow(i)).Cells[colIndex].NumericCellValue.ToString();
                                        else
                                            processo.NrCliente = ((XSSFRow)sheet_XLSX.GetRow(i)).Cells[colIndex].StringCellValue;
                                    }
                                    catch { /*throw ex;*/ }
                                }

                                // INCLUIR OS DADOS DO PROCESSO NA CONCILIAÇÃO
                                business.ImportarRegistroArquivo(processo, codArquivo, codConciliacao, codEscritorio, codUsuario);

                                qtdRegistros++;
                            }
                        }
                    }

                    #endregion
                }
                else
                {
                    #region Excel XLS

                    using (FileStream file = new FileStream(nomeArquivo, FileMode.Open, FileAccess.Read))
                    {
                        planilha_XLS = new HSSFWorkbook(file);
                    }

                    ISheet sheet_XLS = planilha_XLS.GetSheetAt(0);

                    for (Int32 i = row_PrimeiraLinha; i <= sheet_XLS.LastRowNum; i++)
                    {
                        HSSFRow row_XLS = (HSSFRow)sheet_XLS.GetRow(i);

                        if (row_XLS != null)
                        {
                            MMAA.Pedidos.Model.Processo processo = new MMAA.Pedidos.Model.Processo();

                            // N.º PASTA
                            colIndex = listCampos.IndexOf("NR_PASTA");
                            if (colIndex > -1)
                            {
                                try
                                {
                                    if (((HSSFRow)sheet_XLS.GetRow(i)).Cells[colIndex].CellType == CellType.NUMERIC)
                                        processo.NrPasta = ((HSSFRow)sheet_XLS.GetRow(i)).Cells[colIndex].NumericCellValue.ToString();
                                    else
                                        processo.NrPasta = ((HSSFRow)sheet_XLS.GetRow(i)).Cells[colIndex].StringCellValue;
                                }
                                catch { /*throw ex;*/ }
                            }
                            if (!String.IsNullOrEmpty(processo.NrPasta))
                            {
                                // CÓD. PROCESSO
                                colIndex = listCampos.IndexOf("CD_PROCESSO");
                                if (colIndex > -1)
                                {
                                    try
                                    {
                                        if (((HSSFRow)sheet_XLS.GetRow(i)).Cells[colIndex].CellType == CellType.NUMERIC)
                                            processo.CdProcesso = Int32.Parse(((HSSFRow)sheet_XLS.GetRow(i)).Cells[colIndex].NumericCellValue.ToString());
                                        else
                                            processo.CdProcesso = Int32.Parse(((HSSFRow)sheet_XLS.GetRow(i)).Cells[colIndex].StringCellValue);
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // N.º CLIENTE
                                colIndex = listCampos.IndexOf("NR_REFCLIENTE");
                                if (colIndex > -1)
                                {
                                    try
                                    {
                                        if (((HSSFRow)sheet_XLS.GetRow(i)).Cells[colIndex].CellType == CellType.NUMERIC)
                                            processo.NrCliente = ((HSSFRow)sheet_XLS.GetRow(i)).Cells[colIndex].NumericCellValue.ToString();
                                        else
                                            processo.NrCliente = ((HSSFRow)sheet_XLS.GetRow(i)).Cells[colIndex].StringCellValue;
                                    }
                                    catch { /*throw ex;*/ }
                                }

                                // INCLUIR OS DADOS DO PROCESSO NA CONCILIAÇÃO
                                business.ImportarRegistroArquivo(processo, codArquivo, codConciliacao, codEscritorio, codUsuario);

                                qtdRegistros++;
                            }
                        }
                    }

                    #endregion
                }

                #endregion

                #region Quantidade de registros

                if (qtdRegistros > 0)
                {
                    // ATUALIZA A QUANTIDADE DE REGISTROS DO ARQUIVO
                    arquivo.Cd_Codigo = codArquivo;
                    arquivo.Qtd_Registros = qtdRegistros;
                    business.IncluirArquivo(arquivo, codUsuario);
                }

                #endregion
            }
            catch (Exception ex)
            {
                #region Tratamento de erro

                throw ex;

                #endregion
            }
            finally
            {
                #region Finaliza os objetos

                if (planilha_XLS != null)
                    planilha_XLS = null;
                if (planilha_XLSX != null)
                    planilha_XLSX = null;

                #endregion
            }
        }
    }
    public static ArrayList ValidarInclusaoArquivo(int codConciliacao, int codEscritorio)
    {
        ArrayList retorno = new ArrayList();
        MMAA.Pedidos.Model.ArquivoImportacao model = null;
        MMAA.Pedidos.Negocio.ConciliacaoUpload business = null;

        try
        {
            business = new MMAA.Pedidos.Negocio.ConciliacaoUpload();
            model = new MMAA.Pedidos.Model.ArquivoImportacao();

            model.Cd_Conciliacao = codConciliacao;
            model.Cd_Escritorio = codEscritorio;

            retorno.Add(business.ValidarInclusaoArquivo(model).ToString().ToUpper());
        }
        catch (Exception ex)
        {
            throw ex;
        }

        return retorno;
    }
    public void ImportarArquivo(Boolean escritorio, Int32 codEscritorio)
    {
        if (fupArquivo.HasFile)
        {
            #region Valida o tipo de arquivo

            if (Tools.GetFileExtension(fupArquivo.FileName).ToUpper() != ".XLS" && Tools.GetFileExtension(fupArquivo.FileName).ToUpper() != ".XLSX")
                throw new Exception("O arquivo informado é inválido.");

            #endregion

            #region Declaração de variáveis

            HSSFWorkbook planilha_XLS = null;
            XSSFWorkbook planilha_XLSX = null;
            List<MMAA.Pedidos.Model.Processo> processos = null;
            Boolean excel_XLSX = false;
            String nomeArquivo = String.Empty;
            String nomeArquivoOriginal = String.Empty;
            String tempPath = String.Empty;
            Int32 row_Cabecalho = 0;
            Int32 row_PrimeiraLinha = 1;
            MMAA.Pedidos.Model.ArquivoImportacao arquivo = null;
            MMAA.Pedidos.Negocio.ConciliacaoUpload business = null;
            Int32 codArquivo = 0;
            Int32 codConciliacao = 0;
            Int32 codUsuario = 0;
            String configCampos = String.Empty;
            List<String> listCampos = null;
            String configPosicoes = String.Empty;
            List<String> listPosicoes = null;
            Int32 qtdRegistros = 0;
            Int32 colIndex = -1;
            String cellValue = String.Empty;

            #endregion

            try
            {
                #region Inicialização de objetos

                processos = new List<MMAA.Pedidos.Model.Processo>();
                arquivo = new MMAA.Pedidos.Model.ArquivoImportacao();
                business = new MMAA.Pedidos.Negocio.ConciliacaoUpload();

                #endregion

                codConciliacao = Tools.StringToNumber(hdnCdConciliacao.Value);
                codUsuario = ((List<MMAA.Pedidos.Model.Usuario>)Session["Usuario"])[0].CdUsuario;

                #region Parâmetros de upload e importação

                tempPath = System.Configuration.ConfigurationSettings.AppSettings["Relatorio.Path"];
                nomeArquivoOriginal = fupArquivo.FileName;
                excel_XLSX = (Tools.GetFileExtension(nomeArquivoOriginal).ToUpper() == ".XLSX");

                if (escritorio)
                {
                    nomeArquivo = Server.MapPath("~") + "\\" + tempPath + "\\" + "ImportacaoEscritorio_" + DateTime.Now.ToFileTime().ToString() + Tools.GetFileExtension(nomeArquivoOriginal);
                    configCampos = System.Configuration.ConfigurationSettings.AppSettings["Conciliacao.ImportacaoEscritorio.Campos"];
                    configPosicoes = System.Configuration.ConfigurationSettings.AppSettings["Conciliacao.ImportacaoEscritorio.Posicoes"];

                    listCampos = configCampos.Split(',').ToList<String>();
                    listPosicoes = configPosicoes.Split(',').ToList<String>();

                    colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("NR_CBD")]);
                }
                else
                {
                    nomeArquivo = Server.MapPath("~") + "\\" + tempPath + "\\" + "ImportacaoMMAA_" + DateTime.Now.ToFileTime().ToString() + Tools.GetFileExtension(nomeArquivoOriginal);
                    configCampos = System.Configuration.ConfigurationSettings.AppSettings["Conciliacao.ImportacaoMMAA.Campos"];
                    configPosicoes = System.Configuration.ConfigurationSettings.AppSettings["Conciliacao.ImportacaoMMAA.Posicoes"];

                    listCampos = configCampos.Split(',').ToList<String>();
                    listPosicoes = configPosicoes.Split(',').ToList<String>();

                    colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("NR_PASTA")]);
                }

                #endregion

                #region Upload e inclusão do arquivo

                // FAZ O UPLOAD DO ARQUIVO
                fupArquivo.SaveAs(nomeArquivo);

                // INCLUI O ARQUIVO NA CONCILIAÇÃO
                arquivo.Cd_Conciliacao = codConciliacao;
                arquivo.Cd_Escritorio = codEscritorio;
                arquivo.Nm_Arquivo = nomeArquivo;
                arquivo.Nm_ArquivoOriginal = nomeArquivoOriginal;
                arquivo.Qtd_Tamanho = (Int32)fupArquivo.FileContent.Length;
                arquivo.Qtd_Registros = 0;
                codArquivo = business.IncluirArquivo(arquivo, codUsuario);

                #endregion

                #region Importação dos dados do arquivo

                if (excel_XLSX)
                {
                    #region Excel XLSX

                    using (FileStream file = new FileStream(nomeArquivo, FileMode.Open, FileAccess.Read))
                    {
                        planilha_XLSX = new XSSFWorkbook(file);
                    }

                    ISheet sheet_XLSX = planilha_XLSX.GetSheetAt(0);

                    for (Int32 i = row_PrimeiraLinha; i <= sheet_XLSX.LastRowNum; i++)
                    {
                        XSSFRow row_XLSX = (XSSFRow)sheet_XLSX.GetRow(i);

                        if (row_XLSX != null)
                        {
                            // VALIDA A LINHA DO ARQUIVO DE ACORDO COM O TIPO DE IMPORTAÇÃO (ESCRITÓRIO OU MMAA)
                            try
                            {
                                if (((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                    cellValue = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                else
                                    cellValue = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).StringCellValue.Trim();
                            }
                            catch
                            {
                                cellValue = String.Empty;
                            }

                            if (!String.IsNullOrEmpty(cellValue))
                            {
                                MMAA.Pedidos.Model.Processo processo = new MMAA.Pedidos.Model.Processo();

                                #region Colunas do arquivo

                                // N.º PASTA
                                if (listCampos.IndexOf("NR_PASTA") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("NR_PASTA")]);

                                        if (((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.NrPasta = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                        else
                                            processo.NrPasta = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).StringCellValue.Trim();
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // CÓD. PROCESSO
                                if (listCampos.IndexOf("CD_PROCESSO") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("CD_PROCESSO")]);

                                        if (((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.CdProcesso = Int32.Parse(((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString());
                                        else
                                            processo.CdProcesso = Int32.Parse(((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).StringCellValue);
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // N.º CLIENTE
                                if (listCampos.IndexOf("NR_CBD") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("NR_CBD")]);

                                        if (((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.NrCliente = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                        else
                                            processo.NrCliente = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).StringCellValue.Trim();
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // ESCRITÓRIO
                                if (listCampos.IndexOf("ESCRITORIO") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("ESCRITORIO")]);

                                        if (((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.NmEscritorio = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                        else
                                            processo.NmEscritorio = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).StringCellValue.Trim();
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // UF
                                if (listCampos.IndexOf("UF") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("UF")]);

                                        if (((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.NrUf = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                        else
                                            processo.NrUf = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).StringCellValue.Trim();
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // ÂMBITO
                                if (listCampos.IndexOf("AMBITO") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("AMBITO")]);

                                        if (((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.DsAmbito = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                        else
                                            processo.DsAmbito = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).StringCellValue.Trim();
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // INSTÂNCIA
                                if (listCampos.IndexOf("INSTANCIA") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("INSTANCIA")]);

                                        if (((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.Instancia = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                        else
                                            processo.Instancia = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).StringCellValue.Trim();
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // FASE PROCESSUAL
                                if (listCampos.IndexOf("FASE_PROCESSO") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("FASE_PROCESSO")]);

                                        if (((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.DsFaseProcessual = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                        else
                                            processo.DsFaseProcessual = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).StringCellValue.Trim();
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // VALOR ATUALIZADO
                                if (listCampos.IndexOf("VALOR_ATUALIZADO") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("VALOR_ATUALIZADO")]);

                                        if (((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.VrTotalAtualizado = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                        else
                                            processo.VrTotalAtualizado = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).StringCellValue.Replace(",", ".");
                                        if (processo.VrTotalAtualizado == "-")
                                            processo.VrTotalAtualizado = "0";
                                    }
                                    catch { /*throw ex;*/ }
                                }

                                #endregion

                                // INCLUIR OS DADOS DO PROCESSO NA CONCILIAÇÃO
                                business.ImportarRegistroArquivo(processo, codArquivo, codConciliacao, codEscritorio, codUsuario);

                                qtdRegistros++;
                            }
                        }
                    }

                    #endregion
                }
                else
                {
                    #region Excel XLS

                    using (FileStream file = new FileStream(nomeArquivo, FileMode.Open, FileAccess.Read))
                    {
                        planilha_XLS = new HSSFWorkbook(file);
                    }

                    ISheet sheet_XLS = planilha_XLS.GetSheetAt(0);

                    for (Int32 i = row_PrimeiraLinha; i <= sheet_XLS.LastRowNum; i++)
                    {
                        HSSFRow row_XLS = (HSSFRow)sheet_XLS.GetRow(i);

                        if (row_XLS != null)
                        {
                            // VALIDA A LINHA DO ARQUIVO DE ACORDO COM O TIPO DE IMPORTAÇÃO (ESCRITÓRIO OU MMAA)
                            try
                            {
                                if (((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                    cellValue = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                else
                                    cellValue = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).StringCellValue.Trim();
                            }
                            catch
                            {
                                cellValue = String.Empty;
                            }

                            if (!String.IsNullOrEmpty(cellValue))
                            {
                                MMAA.Pedidos.Model.Processo processo = new MMAA.Pedidos.Model.Processo();

                                #region Colunas do arquivo

                                // N.º PASTA
                                if (listCampos.IndexOf("NR_PASTA") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("NR_PASTA")]);

                                        if (((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.NrPasta = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                        else
                                            processo.NrPasta = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).StringCellValue.Trim();
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // CÓD. PROCESSO
                                if (listCampos.IndexOf("CD_PROCESSO") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("CD_PROCESSO")]);

                                        if (((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.CdProcesso = Int32.Parse(((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString());
                                        else
                                            processo.CdProcesso = Int32.Parse(((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).StringCellValue);
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // N.º CLIENTE
                                if (listCampos.IndexOf("NR_CBD") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("NR_CBD")]);

                                        if (((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.NrCliente = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                        else
                                            processo.NrCliente = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).StringCellValue.Trim();
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // ESCRITÓRIO
                                if (listCampos.IndexOf("ESCRITORIO") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("ESCRITORIO")]);

                                        if (((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.NmEscritorio = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                        else
                                            processo.NmEscritorio = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).StringCellValue.Trim();
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // UF
                                if (listCampos.IndexOf("UF") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("UF")]);

                                        if (((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.NrUf = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                        else
                                            processo.NrUf = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).StringCellValue.Trim();
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // ÂMBITO
                                if (listCampos.IndexOf("AMBITO") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("AMBITO")]);

                                        if (((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.DsAmbito = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                        else
                                            processo.DsAmbito = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).StringCellValue.Trim();
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // INSTÂNCIA
                                if (listCampos.IndexOf("INSTANCIA") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("INSTANCIA")]);

                                        if (((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.Instancia = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                        else
                                            processo.Instancia = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).StringCellValue.Trim();
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // FASE PROCESSUAL
                                if (listCampos.IndexOf("FASE_PROCESSO") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("FASE_PROCESSO")]);

                                        if (((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.DsFaseProcessual = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                        else
                                            processo.DsFaseProcessual = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).StringCellValue.Trim();
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // VALOR ATUALIZADO
                                if (listCampos.IndexOf("VALOR_ATUALIZADO") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("VALOR_ATUALIZADO")]);

                                        if (((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.VrTotalAtualizado = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                        else
                                            processo.VrTotalAtualizado = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).StringCellValue.Replace(",", ".");
                                        if (processo.VrTotalAtualizado == "-")
                                            processo.VrTotalAtualizado = "0";
                                    }
                                    catch { /*throw ex;*/ }
                                }

                                #endregion

                                // INCLUIR OS DADOS DO PROCESSO NA CONCILIAÇÃO
                                business.ImportarRegistroArquivo(processo, codArquivo, codConciliacao, codEscritorio, codUsuario);

                                qtdRegistros++;
                            }
                        }
                    }

                    #endregion
                }

                #endregion

                #region Quantidade de registros

                if (qtdRegistros > 0)
                {
                    // ATUALIZA A QUANTIDADE DE REGISTROS DO ARQUIVO
                    arquivo.Cd_Codigo = codArquivo;
                    arquivo.Qtd_Registros = qtdRegistros;
                    business.IncluirArquivo(arquivo, codUsuario);
                }

                #endregion
            }
            catch (Exception ex)
            {
                #region Tratamento de erro

                throw ex;

                #endregion
            }
            finally
            {
                #region Finaliza os objetos

                if (planilha_XLS != null)
                    planilha_XLS = null;
                if (planilha_XLSX != null)
                    planilha_XLSX = null;

                #endregion
            }
        }
    }
    public static ArrayList ExcluirArquivo(int codConciliacao, int codArquivo)
    {
        ArrayList retorno = new ArrayList();
        MMAA.Pedidos.Model.ArquivoImportacao model = null;
        MMAA.Pedidos.Negocio.ConciliacaoUpload business = null;

        try
        {
            business = new MMAA.Pedidos.Negocio.ConciliacaoUpload();
            model = new MMAA.Pedidos.Model.ArquivoImportacao();

            model.Cd_Conciliacao = codConciliacao;
            model.Cd_Codigo = codArquivo;

            business.ExcluirArquivo(model, ((List<MMAA.Pedidos.Model.Usuario>)HttpContext.Current.Session["Usuario"])[0].CdUsuario);
        }
        catch (Exception ex)
        {
            throw ex;
        }

        return retorno;
    }