2009-10-21 48 views
0

J'ai une URL et quand je le charge dans un navigateur, il le reconnaît comme un fichier CSV et affiche Excel "voulez-vous ouvrir". Je veux faire cela par programme afin que je puisse avoir une application winforms utiliser cette URL et analyser le fichier csv directement.lire une URL et récupérer un fichier csv

Quel est le moyen le plus rapide de le faire?


EDIT: i essayé d'utiliser WebClient et je reçois l'erreur folowing:

"Le serveur distant a renvoyé une erreur: (500) Erreur interne du serveur."

+0

Si vous essayez de l'ouvrir _automatically_ dans votre application à partir d'un navigateur Web, vous ne pouvez pas le faire. C'est au système d'exploitation quel programme est démarré lorsque vous téléchargez un lien (et c'est aux paramètres du navigateur de savoir si vous pouvez même le _open_). –

+2

500 Internal Server Error est une erreur générée par le serveur Web. Vérifiez que votre URL est correcte et vérifiez que vous pouvez télécharger le fichier à partir d'un navigateur utilisant la même URL. –

Répondre

5

Je ne vois pas pourquoi quelque chose comme ça ne fonctionne pas (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); 

Lorsque l'URL est votre site avec le fichier csv et le csvPath est où vous voulez que le fichier réel à aller.

+0

+1. Essentiellement mon idée, mais avec un échantillon de code. Bonne réponse. – David

+0

Vraiment, c'est simple, il semble! – markthewizard1234

1

Si vous avez une application WinForms, vous pouvez utiliser un System.Net.WebClient pour lire les données sous forme de chaîne.

Il lira le fichier csv entier sous forme de chaîne, mais vous pouvez l'écrire ou l'analyser à volonté.

0

Si vous voulez juste fouetter quelque chose ensemble, je suggère d'utiliser un langage de script et un peu de bash. Utilisez simplement wget ou quelque chose de similaire pour obtenir le fichier et un langage de script pour l'analyser. Vous pouvez même utiliser php pour analyser une fois que vous avez le fichier parce que je sais que php a la fonction suivante qui est très agréable: http://php.net/manual/en/function.fgetcsv.php

Je suggère de le faire de cette façon parce que c'est plus facile, cela vous permettra certainement d'analyser assez facilement mais je ne sais pas ce que vous voulez faire avec, mais les mondes votre huître.

0

Le code suivant fonctionne pour moi mais j'utilise Open Office. Je ne l'ai pas testé avec Excel. Le bit hacky consiste à renommer la copie locale du fichier en * .xls afin que Windows lance Excel par défaut, si vous laissez l'extension de fichier au format CSV, Windows lancera le Bloc-notes par défaut.

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); 
+0

Ah, j'ai mal lu la question. S'il vous plaît ignorer cette réponse. –

Questions connexes