Web sayfasinsan Xml Istegi Ile Tablo Alma

Internetten veri alma uzerine bir cok ornegimiz olacak fakat en guzel orneklerimizden biri ile bu baslik altinda bir konu paylasmak istedik. bu konumuz icin alttaki ufak tabloyu hazirladik ve bu tabloyu excelinize nasil cekebilirsiniz bunun uzerine calisacagiz.

Tarih
il Isim Urun
Adet
Tutar
Toplam
01/01/2012
Istanbul Mustafa Altin Uyelik
1
1000
1000.00
01/18/2012
Istanbul Hakan Kitap
2
40
80.00

Oncelikle webten xml istegi ile veri alabilmek icin vb editorunde 2 referansi acmalisiniz.

Bunlar yukaridaki resimde de gordugunuz gibi Microsoft HTML Object Library ve Microsoft XML, v6.0 referanslaridir. Aksi takdirde kodlar calismayacaktir. Bunun disinda kodlarimiza gecip onemli noktalari vurgulamak istiyorum.

Sub Tablo_Al()

Dim web_Http As Object 'MSXML2.XMLHTTP
Dim web_Html As String
Dim web_Doc As HTMLDocument
Dim web_Tablo As HTMLTable
Dim web_Satir As HTMLTableRow
Dim web_Hucre As HTMLTableCell
Dim web_Baslangic As Range

Const web_URL As String = "http://www.exceltr.com/2012/01/web_sayfasinsan_xml"
 
Set web_Http = CreateObject("MSXML2.XMLHTTP")

'Set web_Http = New MSXML2.XMLHTTP
Set web_Doc = New HTMLDocument
Set web_Baslangic = Sheet1.Range("A1")

 'Web Istegi Gonderme
web_Http.Open "GET", web_URL
web_Http.send

 'Calismasi icin yeterli zaman verme
Do
DoEvents
Loop Until web_Http.readyState = 4

 'sayfayi HTML`e yerlestirme
web_Doc.body.innerHTML = web_Http.responseText

 'Dosru Tabloyu Bulma ve veriyi Cekme
For Each web_Tablo In web_Doc.all.tags("TABLE")
If web_Tablo.Rows(0).Cells(0).innerText = "Tarih" Then
For Each web_Satir In web_Tablo.Rows
For Each web_Hucre In web_Satir.Cells
web_Baslangic.Offset(web_Satir.RowIndex, web_Hucre.cellIndex).Value = web_Hucre.innerText
Next web_Hucre
Next web_Satir
End If
Next web_Tablo

End Sub

Kodlarimizin onemli bolumlerinden ilki linkimizim (http://www.exceltr.com/2012/01/web_sayfasinsan_xml/) bulundugu bolum, buraya hangi web sayfasindan tablo cekeceksek onu yaziyoruz ve ayni sekilde Set web_Baslangic = Sheet1.Range(“A1”) seklindeki satirimiza da hangi sayfaya ve hangi alana verilerin yazilmasi gerektigini yaziyoruz.

Ikincisi For Each web_Tablo In web_Doc.all.tags(“TABLE“) seklindeki bolum bu bolemden html tagini belirliyoruz yani bir tablo almak istedigimizden buraya table yazdik. Bu bilgiye erismek web sayfasinda sag tiklayip sayfa kaynagini inceleyebilirsiniz.

Son olarakta If web_Tablo.Rows(0).Cells(0).innerText = “Tarih” Then satirina dikkatinizi cekmek istiyorum buraya da dogru tablodan veri alabilmek icin tablonun ilk baslangic degerini giriyoruz ve bu kriterlere gore tablomuzu cekmis oluyoruz.

Bu onem arzeden bolumleri kod icerisinde acik mavi renkle zaten goruceksiniz. Ornek dosyamizi inceleyebilir ve kendinize gore degerlendirebilirsiniz, iyi calismalar..

Web sayfasinsan Xml Istegi Ile Tablo Alma

Yazar: mmustafaaslan

2004 yilindan itibaren ozel bir sirketin finans departmaninda calismaktadir. Kendini excel, visual basic kullaniminda gelistirmis olan yazarimiz; Meslegi geregi SAP konusunda ileri derecede bilgilidir.

“Web sayfasinsan Xml Istegi Ile Tablo Alma” için 3 yorum

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


7 + 3 =