чтение URL и возврат файла CSV
Вопрос
У меня есть URL-адрес, и когда я загружаю его в браузер, он распознает его как CSV-файл и открывает Excel " Вы хотите открыть " ;. Я хочу сделать это программно, чтобы я мог использовать приложение winforms, которое URL-адрес и синтаксический анализ файла CSV напрямую. Р>
какой самый быстрый способ сделать это?
<Ч>РЕДАКТИРОВАТЬ: я пытался использовать WebClient и получаю следующую ошибку:
" Удаленный сервер возвратил ошибку: (500) Внутренняя ошибка сервера. "
Решение
Не понимаю, почему что-то подобное не сработало (в 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);
Где URL-адрес - это ваш сайт с файлом csv, а csvPath - это то место, куда вы хотите поместить фактический файл.
Другие советы
Если у вас есть приложение WinForms, вы можете использовать System.Net.WebClient для чтения данных в виде строки.
Он будет читать весь CSV-файл как строку, но вы можете записать его или проанализировать по своему желанию.
Если вы хотите просто что-то сбить, я бы предложил использовать язык сценариев и немного bash. Просто используйте wget или что-то подобное, чтобы получить файл, и немного языка сценариев для его анализа. Вы даже можете использовать php для его анализа, когда у вас есть файл, потому что я знаю, что php имеет следующую функцию, которая очень полезна: http://php.net/manual/en/function.fgetcsv.php
Я бы посоветовал сделать это таким образом, потому что это проще, это, безусловно, позволит вам разобрать его достаточно легко, хотя я не знаю, что вы хотите сделать с этим оттуда, кроме миров вашей устрицы.
У меня работает следующий код, но я использую Open Office. Я не проверял это с Excel. Хакерский бит заключается в том, чтобы переименовать локальную копию файла в * .xls, чтобы Windows по умолчанию запускала Excel. Если оставить расширение файла как CSV, Windows по умолчанию запустит Блокнот.
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);