contact@exceltr.com

ExcelTR - Microsoft Excel Eğitim Sitesi

Görsel Video Microsoft Excel Eğitim Sitesi
18 Oca 2012

Web sayfasinsan Xml Istegi Ile Tablo Alma

//
Yorumlar3
/
Etiketler, , ,

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

3 % yanıt

  1. Pingback : html2excel Chrome Eklentisi | Excel VBA Macro Egitim Sitesi

Cevap bırakın


9 + 8 =