Domanda

ho un URL e quando lo carico in un browser lo riconosce come file csv e si apre Excel " vuoi aprire " ;. Voglio fare questo a livello di codice in modo da poter fare in modo che un'app Winforms utilizzi l'URL e analizzi direttamente il file CSV.

qual è il modo più rapido per farlo?


EDIT: ho provato a utilizzare WebClient e sto riscontrando l'errore folowing:

" Il server remoto ha restituito un errore: (500) Errore interno del server. "

È stato utile?

Soluzione

Non vedo perché qualcosa del genere non funzioni (in 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);

Dove l'URL è il tuo sito con il file csv e csvPath è dove vuoi che vada il file reale.

Altri suggerimenti

Se si dispone di un'app WinForms, è possibile utilizzare un System.Net.WebClient per leggere i dati come una stringa.

Leggerà l'intero file CSV come una stringa, ma puoi scriverlo o analizzarlo a piacimento.

Se vuoi semplicemente montare qualcosa insieme, suggerirei di usare un linguaggio di scripting e un po 'di bash. Basta usare wget o qualcosa di simile per ottenere il file e un linguaggio di scripting per analizzarlo. Potresti persino usare php per analizzarlo una volta che hai avuto il file perché so che php ha la seguente funzione che è molto bella: http://php.net/manual/en/function.fgetcsv.php

Suggerirei di farlo in questo modo perché è più facile, questo ti consentirà sicuramente di analizzarlo abbastanza facilmente anche se non so cosa vuoi farne da lì, ma i mondi la tua ostrica.

Il seguente codice funziona per me ma sto eseguendo Open Office. Non l'ho provato con Excel. Il bit hacky è quello di rinominare la copia locale del file in * .xls in modo che Windows avvii Excel per impostazione predefinita, se lasci l'estensione del file come CSV, Windows avvierà Notepad per impostazione predefinita.

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);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top