2014-06-06 50 views
0

我知道如何從本地CSV填充的DataGridView,但我怎麼能填充的DataGridView含有CSV鏈接(如http://financials.morningstar.com/ajax/ReportProcess4CSV.html?&t=XNAS:AAPL&region=usa&culture=en-US&cur=USD&reportType=is&period=12&dataType=A&order=desc&columnYear=5&rounding=3&view=raw&r=706201&denominatorView=raw&number=3鏈接/網絡CSV到datagridview的

我有這樣的代碼爲本地CSV,第一行應改變爲指向一個鏈接,但我不知道如何。

Dim TextFieldParser1 As New Microsoft.VisualBasic.FileIO.TextFieldParser("C:\finviz.csv") 

     TextFieldParser1.Delimiters = New String() {","} 

     While Not TextFieldParser1.EndOfData 
      Dim Row1 As String() = TextFieldParser1.ReadFields() 

      If DataGridView1.Columns.Count = 0 AndAlso Row1.Count > 0 Then 
       Dim i As Integer 

       For i = 0 To Row1.Count - 1 
        DataGridView1.Columns.Add("Column" & i + 1, "Column" & i + 1) 
       Next 
      End If 

      DataGridView1.Rows.Add(Row1) 
     End While 

謝謝。

回答

1

嘗試:

Dim myUri As New Uri("http://financials.morningstar.com/ajax/ReportProcess4CSV.html?&t=XNAS:AAPL&region=usa&culture=en-US&cur=USD&reportType=is&period=12&dataType=A&order=desc&columnYear=5&rounding=3&view=raw&r=706201&denominatorView=raw&number=3") 
    Dim request As HttpWebRequest = DirectCast(WebRequest.Create(myUri), HttpWebRequest) 
    Dim response As HttpWebResponse = DirectCast(request.GetResponse(), HttpWebResponse) 
    Dim receiveStream As Stream = response.GetResponseStream() 

    Dim TextFieldParser1 As New Microsoft.VisualBasic.FileIO.TextFieldParser(receiveStream) 
    TextFieldParser1.Delimiters = New String() {","} 
    While Not TextFieldParser1.EndOfData 
     Dim Row1 As String() = TextFieldParser1.ReadFields() 

     If DataGridView1.Columns.Count = 0 AndAlso Row1.Count > 0 Then 
      Dim i As Integer 

      For i = 0 To Row1.Count - 1 
       DataGridView1.Columns.Add("Column" & i + 1, "Column" & i + 1) 
      Next 
     End If 

     DataGridView1.Rows.Add(Row1) 
    End While 

    receiveStream.Close() 
    response.Close() 
+0

非常感謝。首先下載文件要快得多。 – Jovica

+0

不客氣:) – ooopsoft

0

您需要這行之前添加CSV文本下載代碼:

Dim TextFieldParser1 As New Microsoft.VisualBasic.FileIO.TextFieldParser("C:\finviz.csv") 

要麼使用WebClientDownloadFile在單獨的線程或DownloadFileAsync(即使用自己獨立的線程)或HttpWebRequestHttpWebResponse類下載csv,然後用TextFieldParser解析。

另外,不要硬編碼文件名。

+0

我用的是這樣的:昏暗strResult的String = RequestWebData(LINK)從CSV解析單個字符串,但分隔符不strResult工作。不知道如何用上面的代碼實現該行? – Jovica

+0

WebClient沒有任何成功myWebClient.DownloadFile(strResult):重載失敗錯誤。 – Jovica