【问题标题】:reading a url and getting back a csv file读取 url 并取回 csv 文件
【发布时间】:2009-10-21 21:43:52
【问题描述】:

我有一个 URL,当我在浏览器中加载它时,它会将其识别为 csv 文件并弹出 excel“你要打开吗”。我想以编程方式执行此操作,因此我可以让 winforms 应用程序使用该 url 并直接解析 csv 文件。

最快的方法是什么?


编辑:我尝试使用 WebClient,但出现以下错误:

“远程服务器返回错误:(500) 内部服务器错误。”

【问题讨论】:

  • 如果您试图通过网络浏览器在您的应用程序中自动打开它,您不能。下载链接时启动什么程序取决于操作系统(取决于浏览器设置是否能够打开它)。
  • 500 Internal Server Error 是由 Web 服务器生成的错误。检查您的 URL 是否正确,并检查您是否可以使用相同的 URL 从浏览器下载文件。

标签: c# browser csv parsing


【解决方案1】:

我不明白为什么这样的东西不起作用(在 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 是您希望实际文件所在的位置。

【讨论】:

  • +1。本质上是我的想法,但带有代码示例。很好的答案。
  • 真的就是这么简单!
【解决方案2】:

如果您有 WinForms 应用,则可以使用 System.Net.WebClient 将数据作为字符串读取。

它将整个csv文件作为字符串读取,但你可以随意写出或解析。

【讨论】:

    【解决方案3】:

    如果您只想将某些东西组合在一起,我建议您使用脚本语言和一些 bash。只需使用 wget 或类似的东西来获取文件和一些脚本语言来解析它。一旦你有了文件,你甚至可以使用 php 来解析它,因为我知道 php 有以下非常好的函数:http://php.net/manual/en/function.fgetcsv.php

    我建议这样做,因为它更容易,这肯定会让你很容易解析它,虽然我不知道你想从那里做什么,但世界你的牡蛎。

    【讨论】:

      【解决方案4】:

      以下代码适用于我,但我正在运行 Open Office。我没有用 Excel 测试过。 hacky位是将文件的本地副本重命名为* .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);
      

      【讨论】:

        猜你喜欢
        • 2020-12-19
        • 2017-03-26
        • 1970-01-01
        • 1970-01-01
        • 2017-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-10
        • 1970-01-01
        相关资源
        最近更新 更多