public FileContentResult ExportToExcel()
        {
            List <Technology> technologies = StaticData.Technologies;

            string[] columns     = { "Name", "Project", "Developer" };
            byte[]   filecontent = GerarTabela.ExportExcel(technologies, "Technology", true, columns);
            return(File(filecontent, GerarTabela.ExcelContentType, "Technologies.xlsx"));
        }
        public FileContentResult ExportToExcel()
        {
            List <ExportCategorias> categorias = new List <ExportCategorias>();
            List <TipoGasto>        cats       = LAD.TipoGastoLAD.Pesquisar.userId((int)Session["User"]);
            List <Renda>            rendas     = LAD.RendaLAD.Pesquisar.ano((int)Session["Ano"], (int)Session["User"]);

            double[] TotalMes = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
            double[] salario  = new double[12];
            double[] restante = new double[12];
            for (int i = 0; i < 12; i++)
            {
                var query = from renda in rendas where (renda.mes == i + 1 && renda.ano == (int)Session["Ano"]) select renda;
                try {
                    salario[i] = (double)query.ToList()[0].valor;
                }
                catch
                {
                    salario[i] = 0;
                }
            }

            categorias.Add(new ExportCategorias {
                Categoria = "Salário", Janeiro = salario[0], Fevereiro = salario[1], Março = salario[2], Abril = salario[3], Maio = salario[4], Junho = salario[5], Julho = salario[6], Agosto = salario[7], Setembro = salario[8], Outubro = salario[9], Novembro = salario[10], Dezembro = salario[11]
            });


            foreach (TipoGasto cat in cats)
            {
                ExportCategorias categoria = new ExportCategorias();
                categoria.Categoria = cat.nome;

                var query1 = from gasto in cat.Gasto where (gasto.mes == 1 && gasto.ano == (int)Session["Ano"]) select gasto;
                try
                {
                    categoria.Janeiro = (double)query1.ToList()[0].valor;
                    TotalMes[0]      += categoria.Janeiro;
                }
                catch {
                    categoria.Janeiro = 0;
                }

                var query2 = from gasto in cat.Gasto where (gasto.mes == 2 && gasto.ano == (int)Session["Ano"]) select gasto;
                try
                {
                    categoria.Fevereiro = (double)query2.ToList()[0].valor;
                    TotalMes[1]        += categoria.Fevereiro;
                }
                catch
                {
                    categoria.Fevereiro = 0;
                }

                var query3 = from gasto in cat.Gasto where (gasto.mes == 3 && gasto.ano == (int)Session["Ano"]) select gasto;
                try
                {
                    categoria.Março = (double)query3.ToList()[0].valor;
                    TotalMes[2]    += categoria.Março;
                }
                catch
                {
                    categoria.Março = 0;
                }

                var query4 = from gasto in cat.Gasto where (gasto.mes == 4 && gasto.ano == (int)Session["Ano"]) select gasto;
                try
                {
                    categoria.Abril = (double)query4.ToList()[0].valor;
                    TotalMes[3]    += categoria.Abril;
                }
                catch
                {
                    categoria.Abril = 0;
                }

                var query5 = from gasto in cat.Gasto where (gasto.mes == 5 && gasto.ano == (int)Session["Ano"]) select gasto;
                try
                {
                    categoria.Maio = (double)query5.ToList()[0].valor;
                    TotalMes[4]   += categoria.Maio;
                }
                catch
                {
                    categoria.Maio = 0;
                }
                var query6 = from gasto in cat.Gasto where (gasto.mes == 6 && gasto.ano == (int)Session["Ano"]) select gasto;
                try
                {
                    categoria.Junho = (double)query6.ToList()[0].valor;
                    TotalMes[5]    += categoria.Junho;
                }
                catch
                {
                    categoria.Junho = 0;
                }

                var query7 = from gasto in cat.Gasto where (gasto.mes == 7 && gasto.ano == (int)Session["Ano"]) select gasto;
                try
                {
                    categoria.Julho = (double)query7.ToList()[0].valor;
                    TotalMes[6]    += categoria.Julho;
                }
                catch
                {
                    categoria.Julho = 0;
                }

                var query8 = from gasto in cat.Gasto where (gasto.mes == 8 && gasto.ano == (int)Session["Ano"]) select gasto;
                try
                {
                    categoria.Agosto = (double)query8.ToList()[0].valor;
                    TotalMes[7]     += categoria.Agosto;
                }
                catch
                {
                    categoria.Agosto = 0;
                }

                var query9 = from gasto in cat.Gasto where (gasto.mes == 9 && gasto.ano == (int)Session["Ano"]) select gasto;
                try
                {
                    categoria.Setembro = (double)query9.ToList()[0].valor;
                    TotalMes[8]       += categoria.Setembro;
                }
                catch
                {
                    categoria.Setembro = 0;
                }

                var query10 = from gasto in cat.Gasto where (gasto.mes == 10 && gasto.ano == (int)Session["Ano"]) select gasto;
                try
                {
                    categoria.Outubro = (double)query10.ToList()[0].valor;
                    TotalMes[9]      += categoria.Outubro;
                }
                catch
                {
                    categoria.Outubro = 0;
                }

                var query11 = from gasto in cat.Gasto where (gasto.mes == 11 && gasto.ano == (int)Session["Ano"]) select gasto;
                try
                {
                    categoria.Novembro = (double)query11.ToList()[0].valor;
                    TotalMes[10]      += categoria.Novembro;
                }
                catch
                {
                    categoria.Novembro = 0;
                }

                var query12 = from gasto in cat.Gasto where (gasto.mes == 12 && gasto.ano == (int)Session["Ano"]) select gasto;
                try
                {
                    categoria.Dezembro = (double)query12.ToList()[0].valor;
                    TotalMes[11]      += categoria.Dezembro;
                }
                catch
                {
                    categoria.Dezembro = 0;
                }
                categorias.Add(categoria);
            }


            categorias.Add(new ExportCategorias {
                Categoria = "Total", Janeiro = TotalMes[0], Fevereiro = TotalMes[1], Março = TotalMes[2], Abril = TotalMes[3], Maio = TotalMes[4], Junho = TotalMes[5], Julho = TotalMes[6], Agosto = TotalMes[7], Setembro = TotalMes[8], Outubro = TotalMes[9], Novembro = TotalMes[10], Dezembro = TotalMes[11]
            });
            for (int i = 0; i < 12; i++)
            {
                restante[i] = salario[i] - TotalMes[i];
            }
            categorias.Add(new ExportCategorias {
                Categoria = "Restante", Janeiro = restante[0], Fevereiro = restante[1], Março = restante[2], Abril = restante[3], Maio = restante[4], Junho = restante[5], Julho = restante[6], Agosto = restante[7], Setembro = restante[8], Outubro = restante[9], Novembro = restante[10], Dezembro = restante[11]
            });

            string[] columns     = { "Categoria", "Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Junlho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro" };
            byte[]   filecontent = GerarTabela.ExportExcel(categorias, "Planilha", true, columns);
            return(File(filecontent, GerarTabela.ExcelContentType, "Planilha_De_Gastos.xlsx"));
        }