HTML Formuna Excel'den Veri Yükleme

Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Aşağıdaki kodlar ile tasarlamış olduğum HTML formunun ALAN1 isimli Textbox bilgi alanına C'deki DATASON.xls dosyasının DATA sayfasındaki a1 hücresini aktarabiliyorum.

Peki bu bilgiyi Textbox bilgi alanına değilde xxxxxxxxx yazan yere,
yani Table(Tablo) içersine nasıl aktarabiliriz?

Fonksiyon ile bilgiyi alıp sonradan bu alana aktarabiliriz diye düşünüyorum.Fakat şu anda takıldım.

Kod:
<HTML>
<HEAD>
<TITLE>Bilgi Giriş Formu</TITLE>
</HEAD>

<FORM NAME="ANA" >
<CENTER><TABLE BORDER="1" WIDTH="50%">
<TR>
<TD WIDTH="50%" HEIGHT="20" BGCOLOR="#FFFF99" ALIGN=CENTER><FONT SIZE=4><b>xxxxxxxxxx</b></FONT></TD>
</TR>
</TABLE>
<BR>
<BR>
<INPUT NAME="ALAN1" TYPE="TEXT" SIZE=50 ></CENTER>

<Script Language="VBScript"> 

Sub Window_OnLoad()
On Error Resume Next

Set MyForm = Document.ANA

Dosya = "C:\DATASON.XLS"

Set xlApp = CreateObject("Excel.Application") 

xlApp.Visible = False

Set xlBook = xlApp.Workbooks.Open(Dosya) 
Set Sh =xlBook.Sheets("DATA")

MyForm.ALAN1.Value = Sh.Cells(1,1).Value

xlBook.Save
xlBook.Close
xlApp.Quit
Set xlBook = Nothing
Set xlApp = Nothing
Set MyForm = Nothing

Msgbox "Bilgiler Forma Başarıyla Yüklendi",32

End Sub
</Script> 
</FORM>
</HTML>
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,313
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
A&#351;a&#287;&#305;daki kodu, kendinize g&#246;re geli&#351;tirirsiniz ...

HTML:
<HTML>
<HEAD>
   <TITLE>Bilgi Giri&#351; Formu</TITLE>
</HEAD>
<FORM NAME="ANA" >
<CENTER>
 <TABLE BORDER="1" WIDTH="50%">
     <TR>
    <TD WIDTH="50%" HEIGHT="20" BGCOLOR="#FFFF99" ALIGN=CENTER><FONT SIZE=4><b>
       <script Language="VBScript">
        On Error Resume Next
        Dosya = "C:\DATASON.XLS"
        Set xlApp = CreateObject("Excel.Application") 
        xlApp.Visible = False
        Set xlBook = xlApp.Workbooks.Open(Dosya) 
        Set Sh =xlBook.Sheets("DATA")
        x = Sh.Cells(1,1).Value
        document.write (x)
        xlBook.Save
        xlBook.Close
        xlApp.Quit
        Set xlBook = Nothing
        Set xlApp = Nothing
       </script>
    </b></FONT>
    </TD>
     </TR>
 </TABLE>
<BR>
<BR>
</FORM>
</HTML>
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Her zamanki gibi harikas&#305;n&#305;z.....Te&#351;ekk&#252;rler...
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,313
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Ben de size teşekkür ederim.

Bu arada; yukarıdaki kodu revize ettim ve biraz daha esnek hale getirdim.

Şöyle ki; HTML sayfasında ayrı yerlerde aynı Excel dosyasından değişik hücreler okuyup, yazmanız gerekebilir.

Bu durumda, Sub yerine bir fonksiyon kullanmak işleri daha kolaylaştıracaktır.

Aşağıdaki kodla, söz konusu Excel dosyasında A1 hücresi HTML sayfasındaki tabloya, C1 hücresi ise HTML sayfasındaki veri giriş kutusuna yazılmaktadır.

İlgili kod aşağıdaki gibidir;

HTML:
<HTML>
<HEAD>
   <TITLE>Bilgi Giriş Formu</TITLE>
    <script Language="VBScript">
        Function GetData(MyRow, MyColumn)
        On Error Resume Next
        Dosya = "C:\DATASON.XLS"
        Set xlApp = CreateObject("Excel.Application") 
        xlApp.Visible = False
        Set xlBook = xlApp.Workbooks.Open(Dosya) 
        Set Sh =xlBook.Sheets("DATA")
        GetData = Sh.Cells(MyRow,MyColumn).Value
        xlBook.Save
        xlBook.Close
        xlApp.Quit
        Set xlBook = Nothing
        Set xlApp = Nothing
        End Function
       </script>
</HEAD>
<FORM NAME="ANA" >
<CENTER>
 <TABLE BORDER="1" WIDTH="50%">
     <TR>
    <TD WIDTH="50%" HEIGHT="20" BGCOLOR="#FFFF99" ALIGN=CENTER><FONT SIZE=4><b>
       <script Language="VBScript">
        x=GetData(1,1)
        document.write(x)
       </script>
    </b></FONT>
    </TD>
     </TR>
 </TABLE>
<br><br><br>
<INPUT NAME="ALAN1" TYPE="TEXT" SIZE=50 ></CENTER>
    <script Language="VBScript">
         x=GetData(1,3)
        document.ANA.ALAN1.Value = x
    </script>
<BR>
<BR>
</FORM>
</HTML>
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Bu daha g&#252;zel oldu...Ellerinize sa&#287;l&#305;k...

Bu kodlar birg&#252;n foruma g&#252;zel bir &#231;al&#305;&#351;ma olarak geri d&#246;necek... :D
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,313
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Bir alternatif daha ....

Burada, s&#246;zkonusu Excel dosyas&#305;n&#305; a&#231;madan kapal&#305; durumdayken Excel4 makrosu ile A1 ve C1 h&#252;crelerindeki veriler okunarak HTML sayfas&#305;nda ilgili yerlere yaz&#305;lmaktad&#305;r.

HTML:
<HTML>
<HEAD>
   <TITLE>Bilgi Giri&#351; Formu</TITLE>
    <script Language="VBScript">
        Function GetData(MyRow, MyColumn)
            On Error Resume Next
            MyPath="C:\"
            MyFile="DataSon.xls"
            MySh="Data"
            Set xlApp = CreateObject("Excel.Application") 
            xlApp.Visible = False
            MyArg = "'" & MyPath & "[" & MyFile & "]" & MySh & "'!R"
            GetData = xlApp.ExecuteExcel4Macro(MyArg & MyRow & "C" & MyColumn)
            Set xlApp = Nothing
        End Function
       </script>
</HEAD>
<FORM NAME="ANA" >
<CENTER>
 <TABLE BORDER="1" WIDTH="50%">
     <TR>
    <TD WIDTH="50%" HEIGHT="20" BGCOLOR="#FFFF99" ALIGN=CENTER><FONT SIZE=4><b>
       <script Language="VBScript">
        x=GetData(1,1)
        document.write(x)
       </script>
    </b></FONT>
    </TD>
     </TR>
 </TABLE>
<br><br><br>
<INPUT NAME="ALAN1" TYPE="TEXT" SIZE=50 ></CENTER>
    <script Language="VBScript">
         x=GetData(1,3)
        document.ANA.ALAN1.Value = x
    </script>
<BR>
<BR>
</FORM>
</HTML>
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,313
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Alternatiflere devam ediyoruz ... :mrgreen:

Alternatif-1 : Arka planda Excel dosyas&#305;n&#305; gizli olarak a&#231;&#305;p, verileri almak (Yukar&#305;da Mesaj No: 2 ve 4)

Alternatif-2 : Kapal&#305; Excel dosyas&#305;ndan Excel4 makrosu ile verileri almak (Yukar&#305;da Mesaj No: 6)

Alternatif-3 : Kapal&#305; Excel dosyas&#305;ndan DAO ile verileri almak. A&#351;a&#287;&#305;da belirtilmi&#351;tir...

Bu kez, s&#246;z konusu kapal&#305; durumdaki Excel dosyas&#305;ndaki Data isimli sayfada A1 ve C1 h&#252;crelerinin i&#231;eriklerini DAO ile okuyup, HTML sayfas&#305;na yaz&#305;yoruz.

Kapal&#305; Excel dosyas&#305;n&#305;n yolu a&#351;a&#287;&#305;daki gibi olmal&#305;d&#305;r:

D:\HTML\TempHTML\DataSon.xls

Bence, en h&#305;zl&#305;s&#305; ve en profosyonelcesi bu oldu ...

Buradaki VBscript'i Excel veya ba&#351;ka bir Office program&#305;na ait VBA'de rahatl&#305;kla kullanabilirsiniz. Herhangibir referans bile eklemeye gerek yoktur ....

HTML:
<HTML>
<HEAD>
    <TITLE>Bilgi Giris Formu</TITLE>
    <script Language="VBScript">
        Function GetData(MyRng)
                Dim daoDBEngine
                Dim RS
            MyFile="D:\HTML\TempHTML\DataSon.xls" 
            MySh="Data"
                On Error Resume Next
                    Set daoDBEngine = CreateObject("DAO.DBEngine")
                    Set daoDBEngine = CreateObject("DAO.DBEngine.36")
                On Error GoTo 0
                Set dbtmp = daoDBEngine.OpenDatabase(MyFile, False, True, "Excel 8.0; HDR=NO")
                Set RS = dbtmp.OpenRecordset("select * from [Data$" & MyRng & ":" & MyRng & "]")
                GetData= RS.Fields(0).Value
        End Function 
    </script> 
</HEAD> 
<FORM NAME="ANA" > 
    <CENTER> 
        <TABLE BORDER="1" WIDTH="50%"> 
            <TR> 
                <TD WIDTH="50%" HEIGHT="20" BGCOLOR="#FFFF99" ALIGN=CENTER>
                    <FONT SIZE=4>
                        <b>  
                        <script Language="VBScript">  
                            x=GetData("A1") 
                            document.write(x) 
                        </script>  
                        </b>
                    </FONT>  
                </TD> 
            </TR> 
        </TABLE>
        <br><br><br>
        <INPUT NAME="ALAN1" TYPE="TEXT" SIZE=50 >
    </CENTER> 
    <script Language="VBScript">
        x=GetData("C1") 
        document.ANA.ALAN1.Value = x
    </script>
    <BR> <BR> 
</FORM>
</HTML>
 
Son düzenleme:

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,313
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Alternatiflere devam ediyoruz ... :mrgreen:

Alternatif-1 : Arka planda Excel dosyasını gizli olarak açıp, verileri almak (Yukarıda Mesaj No: 2 ve 4)

Alternatif-2 : Kapalı Excel dosyasından Excel4 makrosu ile verileri almak (Yukarıda Mesaj No: 6)

Alternatif-3 : Kapalı Excel dosyasından DAO ile verileri almak. (Yukarıda Mesaj No: 7)

Alternatif-4 : Kapalı Excel dosyasından ADO ile verileri almak. Aşağıda belirtilmiştir...

Bu kez de, söz konusu kapalı durumdaki Excel dosyasındaki Data isimli sayfada A1 ve C1 hücrelerinin içeriklerini ADO - OLEDB ile okuyup, HTML sayfasına yazıyoruz.

Bu metot yine Alternatif:3 - DAO kullanımı ile aynı derecede başarılı bir yöntem.

Kapalı Excel dosyasının yolu aşağıdaki gibi olmalıdır:

D:\HTML\TempHTML\DataSon.xls

HTML:
<HTML>
<HEAD>
<BODY>
    <TITLE>Bilgi Giris Formu</TITLE>
    <script Language="VBScript">
        Function GetData(MyRng)
                Dim Conn
                Dim RS
            MyFile="D:\HTML\TempHTML\DataSon.xls" 
            MySh="Data"
                Set Conn = CreateObject("ADODB.Connection")
                Set RS = CreateObject("ADODB.RecordSet")
                Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                           "Data Source=D:\HTML\TempHTML\DataSon.xls;" & _
                           "Extended Properties=""Excel 8.0; HDR=No"""
                RS.Open "Select * from [Data$" & MyRng & ":" & MyRng &"]", Conn, 1
                GetData= RS.Fields(0).Value
                Conn.Close
        End Function 
    </script> 
</HEAD> 
<FORM NAME="ANA" > 
    <CENTER> 
        <TABLE BORDER="1" WIDTH="50%"> 
            <TR> 
                <TD WIDTH="50%" HEIGHT="20" BGCOLOR="#FFFF99" ALIGN=CENTER>
                    <FONT SIZE=4>
                        <b>  
                        <script Language="VBScript">  
                            x=GetData("A1") 
                            document.write(x) 
                        </script>  
                        </b>
                    </FONT>  
                </TD> 
            </TR> 
        </TABLE>
        <br><br><br>
        <INPUT NAME="ALAN1" TYPE="TEXT" SIZE=50 >
    </CENTER> 
    <script Language="VBScript">
        x=GetData("C1") 
        document.ANA.ALAN1.Value = x
    </script>
    <BR> <BR> 
</BODY>
</FORM>
</HTML>
 
Son düzenleme:
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Sn.Haluk Üstadım,

Bir problemin bu kadarda çözümü olmaz ki..... :mrgreen:

Ben hangisini kullanacağim..... :D
 
Katılım
16 Şubat 2007
Mesajlar
3
Excel Vers. ve Dili
2003 türkçe
internette kullanmak

ben bunlardan birini internette kullanmak istiyorum ama dosya yollarını yazarken C: filan koyuyoruz bu sorun çıkarmazmı? internette kullanmak için ne yapabilirim acil yardımlarınız bekliyorum.... ellerinize sağlık hepinizin bu arada siteye yeni girdimbu örnekle ilgili herşeyi inceledim . Tebrikler.....
 
Katılım
13 Nisan 2005
Mesajlar
45
Excel Vers. ve Dili
Excel 2003
çok güzel

çalışmalar gerçekten süper..

bir de net üzerinden (hem excel belgemiz hemde html belgemiz nette iken) şartlı çağrıyı nasıl yapabiliriz? Gerçekten tıkandım...

Bi örnek yaptım ama çağrı işini html belgesiolarak yapıyor..
 
Katılım
30 Temmuz 2004
Mesajlar
9
Arkada&#351;lar elimde excel dosyas&#305;nda grafikler var .
herbir sayfa1,sayfa2,sayfa3 vs. de grafikler var . ve bu grafiklerin yan s&#252;tunlar&#305;ndaki h&#252;crelerde de&#287;erler var .
B&#252;t&#252;n bu grafik ve de&#287;er i&#231;eren verilerin hepsini html ye resim olarak aktarabilirmiyim veya yukar&#305;da ki bahsedilen &#351;ekilde.
html olarak kay&#305;t yap&#305;nca &#231;ok yer kapl&#305;yor.
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
2,970
Excel Vers. ve Dili
Office 2013 İngilizce
Sn Haluk hocam,

burada gördüğüm aşağıdaki fonksiyonu kapalı bir excel dosyasından bilgi almada;
Kullanıcı tanımlı fonksiyon olarak kullanmak istediğimde sonuç olarak #VALUE! veriyor.

burada kafama takılam MyRng olarak nasıl bir ifade girmemiz gerektiğidir?

A3 şeklinde girmiştim ama.


Kod:
 Function GetData(MyRng)
                Dim Conn
                Dim RS
            MyFile="D:\HTML\TempHTML\DataSon.xls" 
            MySh="Data"
                Set Conn = CreateObject("ADODB.Connection")
                Set RS = CreateObject("ADODB.RecordSet")
                Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                           "Data Source=D:\HTML\TempHTML\DataSon.xls;" & _
                           "Extended Properties=""Excel 8.0; HDR=No"""
                RS.Open "Select * from [Data$" & MyRng & ":" & MyRng &"]", Conn, 1
                GetData= RS.Fields(0).Value
                Conn.Close
        End Function
İyi Çalışmalar.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,313
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Tamer bey;

Yukarıdaki script içinde olduğu gibi aynen kullanabilirsiniz.

Örneğin;

Kod:
Sub Test()
    MsgBox GetData("A3")
End Sub
Sözkonusu D:\HTML\TempHTML\DataSon.xls dosyası mevcut olduğunda, yukarıdaki kodun çalıştırılması sonucunda MsgBox fonksiyonu ile geri dönen değer; "Test Başlığı3" oluyor.


.
 
Katılım
8 Haziran 2013
Mesajlar
5
Excel Vers. ve Dili
2007 - Student
Altın Üyelik Bitiş Tarihi
11-12-2023
Bu konuda yardima ihtiyacim var hala. Aktif takipci varsa izah edebilir mi?
 
Üst