private void ler(List<ProgramacaoInfo> listaRetorno)
        {
            Dictionary<string, ExpositorInfo> expositores = new Dictionary<string, ExpositorInfo>();
            String colunaData = leitor.obterColuna("Dia");
            String colunaHorario = leitor.obterColuna("Horário da atividade");

            String colunaTitulo1Estudo = leitor.obterColuna("Título 1º estudo");
            String colunaTema1Estudo = leitor.obterColuna("1º estudo");
            String colunaReferencia1Estudo = leitor.obterColuna("Referência 1º estudo");
            String colunaExpositor1Estudo = leitor.obterColuna("Expositor 1º estudo");

            String colunaTitulo2Estudo = leitor.obterColuna("Título 2º estudo");
            String colunaTema2Estudo = leitor.obterColuna("2º estudo");
            String colunaReferencia2Estudo = leitor.obterColuna("Referência 2º estudo");
            String colunaExpositor2Estudo = leitor.obterColuna("Expositor 2º estudo");

            String colunaLocal1e2Estudo = leitor.obterColuna("Dependência 1º e 2º estudos");

            String colunaTemaCiclo = leitor.obterColuna("Ciclo de estudos");
            String colunaExpositorCiclo = leitor.obterColuna("Expositor ciclo de estudos");
            String colunaLocalCiclo = leitor.obterColuna("Dependência ciclo de estudos");

            CelulaLeitorInfo celulaData = new CelulaLeitorInfo(colunaData, 2);
            while (true)
            {
                DateTime? data = celulaData.lerData(leitor);
                if (data == null)
                {
                    break;
                }
                CelulaLeitorInfo celTxtHora = new CelulaLeitorInfo(colunaHorario, celulaData.Linha);
                double horaInicio = lerHorario(celTxtHora, 0);
                double horaFim = lerHorario(celTxtHora, 1);

                lerEstudo(listaRetorno, expositores, data.Value, horaInicio, horaFim, celulaData.Linha,
                    colunaTitulo1Estudo, colunaTema1Estudo, colunaReferencia1Estudo, colunaExpositor1Estudo,
                    colunaLocal1e2Estudo, 1);

                lerEstudo(listaRetorno, expositores, data.Value, horaInicio, horaFim, celulaData.Linha,
                    colunaTitulo2Estudo, colunaTema2Estudo, colunaReferencia2Estudo, colunaExpositor2Estudo,
                    colunaLocal1e2Estudo, 2);

                lerCiclo(listaRetorno, expositores, data.Value, horaInicio, horaFim, celulaData.Linha,
                    colunaTemaCiclo, colunaExpositorCiclo, colunaLocalCiclo);

                celulaData = celulaData.proxima(leitor, 0, 1);
            }
        }