ASP.NET - Crear un documento csv en Controlador

 
Vista:
Imágen de perfil de Juan José
Val: 28
Ha aumentado su posición en 3 puestos en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Crear un documento csv en Controlador

Publicado por Juan José (13 intervenciones) el 22/02/2021 17:10:15
Buenas, estoy intentando crear un documento csv en un servidor en concreto. Los datos que necesito los quiero enviar desde la vista porque estos datos sólo se pueden obtener desde este lado.

La idea es que tengo un boton con un icono de un csv, este botón debe crear un documento csv y enviarlo al cliente.
Lo he hecho así:
1
2
3
4
<a href="#" class="botonCSV" href="@Url.Action("FileCsv","main", null)">
     <img src="~/Images/csv.png" alt="Imagen excell/csv" width="28" height="28" />
      <i class="fa fa-caret-down" />
</a>

donde ahora mismo está el null quiero poner un ArrayList y en el controlador he hecho esta cabecera:

1
public ActionResult FileCsv(ArrayList contenidoCSV)


Entonces en el método FileCSV le incluiré el PATH y el nombre del documento.
Finalmente enviará el csv al cliente
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 165
Oro
Ha mantenido su posición en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Crear un documento csv en Controlador

Publicado por Miguel (72 intervenciones) el 22/02/2021 23:23:32
Bueno supongamos que regresaras una entidad persona

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//aqui el pseudo codigo
 
  Persona
{
  string Nombre;
 string  Apellido;
}
 
[HttpPost]
    public FileResult Export()
    {
       List<person> personas = new List<person>();
 
         //nombre columnas
        personas.Add(new Persona {"Nombre","Apellido"})
 
     //aqui agregar unas cuatro personas
 
 
 
// luego se agregan las personas a un string para importarlas como excel csv
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < personas.Count; i++)
        {
             //aqui se agrega la propiedad y una coma.
            sb.Apend(personas[i].Nombre + ","  + personas[i].Apellido );
            //nueva linea
            sb.Append("\r\n");
 
        }
 
        return File(Encoding.UTF8.GetBytes(sb.ToString()), "text/csv", "Personas.csv");
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Juan José
Val: 28
Ha aumentado su posición en 3 puestos en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Crear un documento csv en Controlador

Publicado por Juan José (13 intervenciones) el 23/02/2021 14:43:08
Muchas gracias, me ha servido de ayuda. Se ha quedado así.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[HttpGet]
        public FileResult ExportCSV(string id, string pContenidoCSV) {
            //Coger el PATH del directorio
            string pFechaServer = DateTime.Today.Month + "-" + DateTime.Today.Year;
 
            DataTable pDataTableCSV = JsonConvert.DeserializeObject<DataTable>(pContenidoCSV);
 
            StringBuilder sb = new StringBuilder();
            foreach (DataRow pFila in pDataTableCSV.Rows)
            {
                foreach (DataColumn pColumna in pDataTableCSV.Columns)
                {
                    if (pColumna.ColumnName.Equals("Numero") || pColumna.ColumnName.Equals("Fecha") || pColumna.ColumnName.Equals("ImpBaseImponible")
                        || pColumna.ColumnName.Equals("ImpIVA") || pColumna.ColumnName.Equals("ImpTotal"))
                    {
                        sb.Append(pFila[pColumna.Caption] + ";");
                    }
                }
                sb.Replace(";", System.Environment.NewLine, sb.Length - 1,1);
            }
            return File(Encoding.UTF8.GetBytes(sb.ToString()), "text/csv", id + ".csv");
        }
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar