Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. Visual Studio 6.0
Importare una tabella da una pagina internet in una datagridview
martedì 15 maggio 2007 - 16.22
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
bobetu
Profilo
| Newbie
3
messaggi | Data Invio:
mar 15 mag 2007 - 16:22
Ciao a tutti, sono nuovo del forum e anche di vb.net.
Avrei bisogno di estrarre da una pagina internet una tabella di dati ed inserirli in un db access (o una datagridview visto che poi saprei come importarli nell’access).
Ho provato ad utilizzare MSHTML.HTMLDocument ma non ci sono riuscito
.
Naturalmente prima di scrivere ho cercato tra i vari post e a parte
http://www.dotnethell.it/forum/messages.aspx?ThreadID=14304
(che non essendo in vb non sono riuscito a riutilizzare) avevo trovato
http://www.dotnethell.it/forum/messages.aspx?ThreadID=12730
riscontrando gli stessi problemi segnalati nel post (comunque non saprei come modificarlo per adattarlo alle mie esigenze
).
Qualcuno può aiutarmi?
Grazie mille
icchio
Profilo
| Newbie
8
messaggi | Data Invio:
mer 16 mag 2007 - 07:42
Ciao.....
Se il sito web è tuo ti consiglio di utilizzare l'xml e
aggiungerlo al progetto VB direttamente come origine dati....
Naturalmente se il sito non è tuo e il proprietario non rende disponibili pagine xml è un po'
più problematico....
Potresti provare a scorrere l'html come un file e, utilizzando la gestione delle stringhe, prendere i dati che ti servono....
e' un po' una soluzione del ....... ma momentaneamente non mi viene in mente altro.
bobetu
Profilo
| Newbie
3
messaggi | Data Invio:
mer 16 mag 2007 - 07:50
Ciao,
purtroppo il sito non è mio e non ci sono pagine xml.
Avevo già letto da qualche parte la possibilità di leggere l'html per prelevare i dati ma sinceramente non saprei da dove iniziare.
mi potresti dare qualche suggerimento?
Grazie
Roberto
bobetu
Profilo
| Newbie
3
messaggi | Data Invio:
ven 18 mag 2007 - 10:11
ciao,
mi rispondo da solo sperando di poter essere di aiuto a qualcuno.
Il codice che segue preleva i dati dei titoli del mib30 dal sito borsaitaliana. Ovviamente va poi modificato a seconda delle esigenze.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
GetPageAsString(New Uri("
http://www.borsaitaliana.it/bitApp/listino?service=Data&lang=it&main_list=1&sub_list=2"
))
End Sub
Public Sub GetPageAsString(ByVal address As Uri)
Dim request As HttpWebRequest
Dim response As HttpWebResponse = Nothing
Dim reader As StreamReader
Dim result As String
Try
request = DirectCast(WebRequest.Create(address), HttpWebRequest)
response = DirectCast(request.GetResponse(), HttpWebResponse)
reader = New StreamReader(response.GetResponseStream())
result = reader.ReadToEnd()
Finally
If Not response Is Nothing Then response.Close()
End Try
‘con questo passaggio eleminate tutto il codice html e lo sostituite con un “;”
Dim output As String = Regex.Replace(result, "\<[^\>]+\>", ";")
‘con questo codice spezzate la vostra stringa di codice per creare un array (o almeno credi si chiami così) con tante righe per quanti sono i dati contenuti nella stringa
Dim TestString As String = output
Dim TestArray() As String = Split(TestString, ";")
‘qui creo una tabella con 3 colonne e la formatto
DataGridView1.ColumnCount = 3
DataGridView1.ColumnHeadersVisible = True
' Set the column header style.
Dim columnHeaderStyle As New DataGridViewCellStyle()
columnHeaderStyle.BackColor = Color.Beige
columnHeaderStyle.Font = New Font("Verdana", 10, FontStyle.Bold)
DataGridView1.ColumnHeadersDefaultCellStyle = columnHeaderStyle
‘qui do I nomi alle colonne della tabella
DataGridView1.Columns(0).Name = "colonna 1"
DataGridView1.Columns(1).Name = "colonna 2"
DataGridView1.Columns(2).Name = "colonna 3"
‘ qui creo un ciclo per recuperare le righe che voglio dall’array che ho creato e le metto nel datagridview1
Dim y As Integer = 1
For y = 152 To 794 Step 22
Dim row1() As String = {TestArray(y), TestArray(y + 4), TestArray(y + 6)}
Dim rows() As Object = {row1}
Dim rowArray As String()
For Each rowArray In rows
DataGridView1.Rows.Add(rowArray)
Next rowArray
Next y
DataGridView1.AutoResizeColumnHeadersHeight()
' Resize all the row heights to fit the contents of all
' non-header cells.
DataGridView1.AutoResizeRows( _
DataGridViewAutoSizeRowsMode.AllCellsExceptHeaders)
End Sub
Per far funzionare questo codice dovete avere un form con 1 button1 e un datagridview1.
bisogna inoltre importare:
Imports System
Imports System.IO
Imports System.Net
Imports System.Text
Imports System.Text.RegularExpressions
Ho commentato un minimo il codice per potervi permettere di modificare le parti che vi interessano.
Spero di essere di aiuto a qualcuno.
Ciao a tutti.
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !