public ActionResult gerarExcel(IOrderedQueryable <TituloReceitaPagamentoVW> queryOrder) { StringWriter sw = new StringWriter(); // Montar cabeçalho string cabecalho = "Código;Data Transação;Tipo Receita;ID Receita;Descrição;Nome;Valor pagamento;Valor Tarifas;Data Vencimento;Data Pagamento;" + "Data Baixa;Data Crédito;Meio de Pagamento;Status;Comprovante"; string nomeArquivo = String.Concat("Receitas_", User.id(), "_", Session.SessionID, "_", UtilString.onlyNumber(DateTime.Now.ToString(CultureInfo.InvariantCulture)), ".csv"); sw.WriteLine(cabecalho); var listaRegistros = queryOrder.ToList(); foreach (var OItem in listaRegistros) { string campos = "{0}"; for (int i = 1; i < cabecalho.Split(';').Length; i++) { campos = String.Concat(campos, ";{" + i + "}"); } sw.WriteLine(campos, OItem.idTituloReceitaPagamento, OItem.dtCadastro.exibirData(true), OItem.descricaoTipoReceita, OItem.idReceita, OItem.descricaoTitulo(), OItem.nomePessoa, OItem.valorOriginal.ToString("C"), OItem.valorTotalTarifas().ToString("C"), OItem.dtVencimento.exibirData(), OItem.dtPagamento.exibirData(), OItem.dtBaixa.exibirData(true), OItem.dtCredito.exibirData(), OItem.descricaoFormaPagamento, OItem.descricaoStatusPagamento, OItem.codigoAutorizacao); } string urlArquivo = String.Concat(UtilConfig.pathAbsUploadFiles, nomeArquivo); if (!System.IO.File.Exists(urlArquivo)) { System.IO.File.Create(urlArquivo).Close(); } System.IO.File.AppendAllText(urlArquivo, sw.ToString(), System.Text.Encoding.GetEncoding("iso8859-1")); return(File(urlArquivo, "text/csv", nomeArquivo)); }