Pregunta

Tengo una URL y cuando la cargué en un navegador, la reconoce como un archivo csv y aparece excel " ¿quieres abrir " ;. Quiero hacer esto de manera programática para que pueda tener una aplicación de winforms que use esa url y analice el archivo csv directamente.

¿Cuál es la forma más rápida de hacer esto?


EDITAR: intenté usar WebClient y obtengo el siguiente error:

" El servidor remoto devolvió un error: (500) Error interno del servidor. "

¿Fue útil?

Solución

No veo por qué algo como esto no funcionaría (en C #):

// 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 está la URL de su sitio con el archivo csv y csvPath es donde quiere que vaya el archivo real.

Otros consejos

Si tiene una aplicación WinForms, puede usar un System.Net.WebClient para leer los datos como una cadena.

Leerá el archivo csv completo como una cadena, pero puede escribirlo o analizarlo a voluntad.

Si solo quieres unir algo, sugiero que uses un lenguaje de scripting y algo de bash. Simplemente use wget o algo similar para obtener el archivo y algún lenguaje de scripting para analizarlo. Incluso podrías usar php para analizarlo una vez que tengas el archivo porque sé que php tiene la siguiente función, que es muy buena: http://php.net/manual/en/function.fgetcsv.php

Sugeriría hacerlo de esta manera porque es más fácil, esto ciertamente te permitirá analizarlo fácilmente, aunque no sé qué quieres hacer con eso desde allí, pero el mundo es tu ostra.

El siguiente código me funciona, pero estoy ejecutando Open Office. No lo he probado con Excel. El bit de piratería es cambiar el nombre de la copia local del archivo a * .xls para que Windows inicie Excel de manera predeterminada. Si deja la extensión del archivo como CSV, Windows lanzará el Bloc de notas de forma predeterminada.

String url = "http://www.example.com/test.csv";
String localfile = "test.xls";

var client = new WebClient();
client.DownloadFile(url, localfile);

System.Diagnostics.Process.Start(localfile);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top