alfinete
Power Member
boas Tardes
tenho este metodo expotar uma extrutura de dados para csv
funciona na perfeição
ao descomentar as linhas para em vês de svc ser xls
ele apenas cria um ficheiro xls com a estrutura csv
gostava que me ajudassem aproveitando este metodo
para dar para exportar para excel.
nota : como a estrutura de dados traz mais colunas do que aquelas que quero mostrar tenho de as criar á mão na própria exportação.
obrigado aguardo
tenho este metodo expotar uma extrutura de dados para csv
funciona na perfeição
ao descomentar as linhas para em vês de svc ser xls
ele apenas cria um ficheiro xls com a estrutura csv
gostava que me ajudassem aproveitando este metodo
para dar para exportar para excel.
nota : como a estrutura de dados traz mais colunas do que aquelas que quero mostrar tenho de as criar á mão na própria exportação.
obrigado aguardo
Código:
public void ExportRequestsToCSV(int RequestTypeID)
{
// Trazemos os dados
switch (RequestTypeID)
{
case 0:
lstRequestsToExport = _requestService.GetAllSubmittedRequests();
break;
case (int)REQUESTSTATUSCODE.CANCELADO:
lstRequestsToExport = _requestService.GetAllCanceledRequests();
break;
default:
lstRequestsToExport = _requestService.GetAllSubmittedRequests();
break;
}
string separator = ",";
for (int i = 0; i < lstRequestsToExport.Count(); i++)
{
if (i == 0)
{
//damos o nome ás colunas
sb.AppendLine("Employee Number, Name, ID Number, NIF, Legal Entity, Morada, Local, Cód. Postal, E-mail, Category Group," +
"Estado Pedido,Process Submit Date, ID Proceso, Card, Número, Card Type, RefMB, Device, Modelo, IMEI," +
"Delivery Date, Subsidiação, Tarifario, Fatura, Valor Liquido,StatusID,Estado");
}
var request = lstRequestsToExport.ElementAt(i);
sb.Append(request.Employee.Number).Append(separator)
.Append(request.Employee.Name).Append(separator)
.Append(request.Employee.CC).Append(separator)
.Append(request.Employee.Nif).Append(separator)
.Append(request.Employee.Entity).Append(separator)
.Append(GetString(request.Employee.Address)).Append(separator)
.Append(GetString(request.Employee.Local)).Append(separator)
.Append(request.Employee.PostalCode).Append(separator)
.Append(request.Employee.Email).Append(separator)
.Append(request.Employee.Category.CategoryGroup.Description).Append(separator)
.Append(request.RequestStatus.Description).Append(separator)
.Append(request.SubmitDate.ToString("yyyy/MM/dd")).Append(separator)
.Append(request.ID).Append(separator)
.Append(request.CardExisting ? "Sim" : "Não").Append(separator)
.Append(request.CardNumber ?? string.Empty).Append(separator)
.Append(request.CardType.Description).Append(separator)
.Append(request.CardMBReference ?? string.Empty).Append(separator)
.Append(request.Device != null ? request.Device.Make.Description : string.Empty).Append(separator)
.Append(request.Device != null ? request.Device.Model : string.Empty).Append(separator)
.Append(request.CardIMEI ?? string.Empty).Append(separator)
.Append(request.DeliveryDate.HasValue ? request.DeliveryDate.Value.ToString("yyyy/MM/dd") : string.Empty).Append(separator)
.Append(request.Subvention.HasValue ? request.Subvention.Value ? "sim" : "Não" : string.Empty).Append(separator)
.Append(request.Plan_Operator.Description).Append(separator)
.Append(request.InvoiceNumber ?? string.Empty).Append(separator)
.Append(request.Value.HasValue ? GetString(request.Value.Value.ToString()) : string.Empty).Append(separator)
.Append(request.RequestStatusID.ToString()).Append(separator)
.AppendLine(request.RequestStatus.Description);
}
var response = HttpContext.Current.Response;
response.ContentType = "text/csv";
//response.ContentType = "application/vnd.ms-excel";
response.ContentEncoding = Encoding.Default;
//response.ContentEncoding = Encoding.UTF8;
response.AddHeader("content-disposition", String.Format("attachment; filename=Requests_{0}.csv", DateTime.Now.ToString("yyyyMMdd_hhmm")));
//response.AddHeader("content-disposition", String.Format("attachment; filename=Requests_{0}.xls", DateTime.Now.ToString("yyyyMMdd_hhmm")));
response.Write(sb.ToString());
response.Flush();
response.End();
}