Bir web sitesi üzerindeki raporu çekmeye çalışıyorum. Delphi'de bir form üzerine koyduğum twebbrowser componenti ile ilgili siteye bağlanıp, login ekranındakı bilgileri doldurup siteye giriş yapıyorum. Sonra rapor sayfasına geçip gerekli parametreleri (tarih vs) doldurup raporu çağırıyorum. Rapor bir asp sayfası ve data grid üzerinde istenilen sonuçları gösteriyor. Ben de bu sonuçları alıp başka bir sisteme aktarmak istiyorum. Html kodu içinden sonuçları almam mümkün fakat sayfadaki excel'e aktar özelliğini kullanarak almak istiyorum. Sayfadaki excel'e aktarma fonksiyonu da delphi'den çağırarak çalıştırabiliyorum fakat Internet Explorer'ın 'File Download' dialoğu karşıma geliyor. Bir türlü bu kısmı aşamadım. TWebbrowser componentinin "onfiledownload" event'i ile yapmayı denedim ama gelen URL parametresi direkt dosya linki değil. Daima bulunduğum sayfanın linki yani http://site.com/rapor.asp şeklinde geliyor.
Bir kaç gündür bu konuyu araştırıyorum ama bulduğum örnekler sayfa içindeki var olan linkleri yakalama üzerine kurulu. Benim aradığım ise, sayfada dosya linki olmadan bir buttona tıklayınca asp sayfasından "response.write" ile gönderilen dosyayı yakalamak. Bu konuda fikri olan varsa yardımlarını rica ediyorum. Şimdiden çok teşekkür ederim.
Not: Fikir vermesi için asp'den data grid nasıl excel dosyası olarak export edilir örneği,
Kod: Tümünü seç
Private Sub ExportToExcel()
Dim stringWrite As IO.StringWriter
Dim htmlWrite As HtmlTextWriter
Dim frm As HtmlForm = New HtmlForm()
Response.Clear()
Response.AddHeader("content-disposition", "attachment;filename=Rapor.xls")
Response.Charset = ""
Response.ContentType = "application/vnd.ms-xls"
stringWrite = New IO.StringWriter
htmlWrite = New HtmlTextWriter(stringWrite)
Controls.Add(frm)
DataGrid.GridLines = GridLines.None
frm.Controls.Add(DataGrid)
frm.RenderControl(htmlWrite)
Response.Write(stringWrite.ToString())
Response.End()
End Sub