Saltar al contenido

¿Cómo leer un archivo csv desde una URL?

Solución:

Podrías usar:

public string GetCSV(string url)
{
    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
    HttpWebResponse resp = (HttpWebResponse)req.GetResponse();

    StreamReader sr = new StreamReader(resp.GetResponseStream());
    string results = sr.ReadToEnd();
    sr.Close();

    return results;
} 

Y luego dividirlo:

public static void SplitCSV()
{
    List<string> splitted = new List<string>();
    string fileList = getCSV("http://www.google.com");
    string[] tempStr;

    tempStr = fileList.Split(',');

    foreach (string item in tempStr)
    {
        if (!string.IsNullOrWhiteSpace(item))
        {
            splitted.Add(item);
        }
    }
}

Aunque hay muchos analizadores CSV por ahí y le desaconsejaría utilizar el suyo. FileHelpers es bueno.

// Download the file to a specified path. Using the WebClient class we can download 
// files directly from a provided url, like in this case.

System.Net.WebClient client = new WebClient();
client.DownloadFile(url, csvPath);

Donde la URL es su sitio con el archivo csv y csvPath es donde desea que vaya el archivo real.

En su servicio web, podría usar la clase WebClient para descargar el archivo, algo como esto (no he puesto ningún manejo de excepciones, ni uso o llamadas de cierre / eliminación, solo quería dar la idea de que puede usar y refinar / mejorar. ..)

using System.Net;

WebClient webClient = new WebClient();
webClient.DownloadFile("http://www.domain.co.uk/prices.csv");

luego puede hacer lo que quiera con él una vez que el contenido del archivo esté disponible en el flujo de ejecución de su servicio.

Si tiene que devolverlo al cliente como valor de retorno de la llamada al servicio web, puede devolver un DataSet o cualquier otra estructura de datos que prefiera.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *