Pergunta

Eu tenho uma URL e quando eu carregá-lo em um navegador reconhece-lo como um arquivo CSV e aparece excel "quer abrir". Eu quero fazer isso programaticamente para que eu possa ter um aplicativo winforms uso que url e analisar o arquivo CSV diretamente.

O que é a maneira mais rápida de fazer isso?


EDIT: Eu tentei usar WebClient e eu estou recebendo o erro folowing:

"O servidor remoto retornou um erro:. (500) Internal Server Error"

Foi útil?

Solução

Eu não vejo por que algo como isso não iria funcionar (em 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);

Quando a url é o seu site com o arquivo CSV eo csvPath é onde você quer o arquivo real para ir.

Outras dicas

Se você tiver um aplicativo WinForms, você pode usar um System.Net.WebClient para ler os dados como uma string.

Ele irá ler todo o arquivo CSV como uma string, mas você pode escrevê-lo ou analisá-lo à vontade.

Se você quiser apenas chicote algo juntos, sugiro usar uma linguagem de script e alguns bash. Basta usar wget ou algo semelhante para obter o arquivo e alguma linguagem de script para analisá-lo. Você poderia até usar php para analisá-lo uma vez que você teve o arquivo porque eu sei que php tem a seguinte função que é muito bom: http://php.net/manual/en/function.fgetcsv.php

Eu sugiro fazê-lo desta maneira porque é mais fácil, isso certamente vai deixar você analisá-lo com bastante facilidade, embora eu não sei o que você quer fazer com ele de lá, mas os mundos sua ostra.

O código a seguir funciona para mim, mas eu estou correndo Open Office. Eu não testei com o Excel. O pouco hacky é renomear a cópia local do arquivo para * .xls para que o Windows vai lançar Excel por padrão, se você deixar a extensão de arquivo como CSV, o Windows irá lançar o bloco de notas por padrão.

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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top