//geraexcel
        private void button1_Click(object sender, EventArgs e)
        {
            var oss = (from o in _banco.OS
                       where o.DTINICIO >= TBDataInicial.Value &&
                       o.DTFIM <= TBDataFinal.Value
                       select new
            {
                o.IDOS,
                o.OS1,
                o.DESCRICAO,
                o.DTINICIO,
                o.DTFIM
            }).DefaultIfEmpty().OrderBy(c => c.DTINICIO).ToList();

            var listrel = new List <Relexcel>();

            foreach (var os in oss)
            {
                var rel = new Relexcel {
                    Descricao = os.DESCRICAO, Os = os.OS1, Data = os.DTINICIO.Value.Date
                };
                if ((os.DTINICIO != null) && (os.DTFIM != null))
                {
                    rel.Hora = os.DTFIM.Value.TimeOfDay - os.DTINICIO.Value.TimeOfDay;
                }

                listrel.Add(rel);
            }

            listrel = somahoraslista(listrel);

            if (RBXLS.Checked)
            {
                GeraRelExcel(listrel);
            }
            if (RBSVC.Checked)
            {
                GeraArquivoTexto(listrel);
            }
        }
        private List <Relexcel> somahoraslista(IEnumerable <Relexcel> lista)
        {
            var      data   = DateTime.Now.Date.AddDays(1);
            var      os     = "";
            var      lista2 = new List <Relexcel>();
            Relexcel rel    = null;

            foreach (var item in lista)
            {
                if ((!data.Equals(item.Data.Date)) || (!os.Equals(item.Os)))
                {
                    if (rel != null)
                    {
                        lista2.Add(rel);
                    }
                    rel = new Relexcel
                    {
                        Data      = item.Data.Date,
                        Hora      = item.Hora,
                        Descricao = item.Descricao,
                        Os        = item.Os
                    };
                }
                else
                {
                    if (rel != null)
                    {
                        rel.Hora += item.Hora;
                    }
                }
                data = item.Data.Date;
                os   = item.Os;
            }
            lista2.Add(rel);

            return(lista2);
        }