1

Konu: excel hücreleri ile ilgili

excele aktarılan bilgiler düzenlenirken, bir hücrenin alignment özelliği nasıl değiştirilir bulamadım. left right yada center olması? birde belli aralıktaki hücrelere kenarlık çizmek istiyorum. ince kenarlık, kalın kenarlık nasıl çizdirebilirim. şimdiden teşekküler...

2

Re: excel hücreleri ile ilgili

Visual Fox Pro
#include xlconstants.h

Local oExcel
oExcel = Createobject("Excel.Application")
With oExcel
    .WorkBooks.Add
    .Visible = .T.
    VFP2Excel(_samples+'data\testdata.dbc',;
        'select'+;
        '    CAST(TRIM(Company) as varchar(50)) as Company,'+;
        '    CAST(TRIM(Contact) as varchar(50)) as Contact,'+;
        '    MaxOrdAmt'+;
        '  from customer',;
        .ActiveWorkBook.ActiveSheet.Range('A1'))
    With .ActiveWorkBook.ActiveSheet
        .UsedRange.Columns.Autofit() && kolonlari otomatik genislet
        * Sola, saga, ortaya hizala
        .UsedRange.Columns(1).HorizontalAlignment = xlLeft
        .UsedRange.Columns(2).HorizontalAlignment = xlCenter
        .UsedRange.Columns(3).HorizontalAlignment = xlRight
        * Ilk satira Kenar ciz
        WITH .UsedRange.Rows(1).Borders
            .Weight = xlMedium
            .LineStyle = xlContinuous
        endwith
    Endwith
Endwith
 
Function VFP2Excel
    Lparameters tcDataSource, tcSQL, toRange
    Local loConn As AdoDB.Connection, ;
        loRS As AdoDB.Recordset,;
        ix
    loConn = Createobject("Adodb.connection")
    loConn.ConnectionString = "Provider=VFPOLEDB;Data Source="+m.tcDataSource
    loConn.Open()
    loRS = loConn.Execute(m.tcSQL)
 
    For ix=1 To loRS.Fields.Count
        toRange.Offset(0,m.ix-1).Value = Proper(loRS.Fields(m.ix-1).Name)
        toRange.Offset(0,m.ix-1).Font.Bold = .T.
    Endfor
    toRange.Offset(1,0).CopyFromRecordSet( loRS )
    loRS.Close
    loConn.Close
Endfunc

3

Re: excel hücreleri ile ilgili

hizalama ve kenar çizme satırlarında hata veriyor. yani xl ile başlayan özelliklerde. xlLeft,xlCenter
,xlRight,xlMedium,xlContinuous satırlarında "variable is not found " diyor.
bakabilirseniz sevinirim.

4 Son düzenleyen, cetinbasoz (25.09.2008 11:05:48)

Re: excel hücreleri ile ilgili

Dogal cunku onlar variable degil constant.
xlconstants.h dosyan yoksa olustur. Nasil olusturacagini eski mesajlarda bulabilirsin, 'object explorer' ara.

Neyse ya bulmazsan diye anlatayim gene:
-Command window'a git
Modify command xlconstants.h [enter]

-Acilan kod penceresini orada birak dursun
-Tools\Object explorer
-Sol ustteki ikonunu tikla, acilan pageframeli dialogta ortada COM cikmasi lazim onu sec. Microsoft Excel < versioyon > type library bul ve sec
-OK de, ilk acilan pencerede yaninda + ile "Excel" belirecek
-O nodu genislet
-'Constants' nodunu fareyle, en basta actigin kosede duran kod penceresine, surukle birak
-Tum sabitler yazilacak oraya
-Object explorer'i kapat
-Kod penceresini de Ctrl+W ile kapat (yani saklayarak kapat)
Boylece elinde tum Excel sabitlerinin bulundugu xlconstants.h dosyasi olmus olur.

5

Re: excel hücreleri ile ilgili

teşekkürler. foxta yeni bir pencere daha öğrendim. iyi çalışmalar...

6

Re: excel hücreleri ile ilgili

Yukarıdaki örneğe dayanarak bir şey öğrenmek istiyorum.
Bir excell dosyayı hiç açmadan belli bir hücreye (range A5 gibi) bilgi girişi yapabilirmiyim.

Tşk.

7

Re: excel hücreleri ile ilgili

Açmak dediğin zaten
oExcel.Visible = .T.
olması demektir. Eğer sen Visible = .T. yapmazsan görünür olmaz ve istediğini yazarsın sonrada kapatırsın.

/o---------------------o\
     www.haser.com
\o---------------------o/

8

Re: excel hücreleri ile ilgili

Bilgi girişi için nasıl bir kod gerekiyor.

9

Re: excel hücreleri ile ilgili

VFP den Excel'e kayıt girişini (Xls i hiç açmadan) kastediyorum.  Tşk.

10

Re: excel hücreleri ile ilgili

İnşaallah seni doğru anlamışımdır

Visual Fox Pro
Local loExcel As "Excel.Application"

m.loExcel = Createobject("Excel.Application")
With m.loExcel As "Excel.Application"
    .WorkBooks.Open("C:\Deneme.xls")
    With .ActiveWorkbook
        .ActiveSheet.Range("A2").Value = "Deneme 123"
        .Save
        .Close
    EndWith
EndWith
m.loExcel = Null
/o---------------------o\
     www.haser.com
\o---------------------o/

11

Re: excel hücreleri ile ilgili

Tarkan teşekkürler.
Aradığım buydu.

12

Re: excel hücreleri ile ilgili

cetinbasoz yazdı:

Dogal cunku onlar variable degil constant.
xlconstants.h dosyan yoksa olustur. Nasil olusturacagini eski mesajlarda bulabilirsin, 'object explorer' ara.

Neyse ya bulmazsan diye anlatayim gene:
-Command window'a git
Modify command xlconstants.h [enter]

-Acilan kod penceresini orada birak dursun
-Tools\Object explorer
-Sol ustteki ikonunu tikla, acilan pageframeli dialogta ortada COM cikmasi lazim onu sec. Microsoft Excel < versioyon > type library bul ve sec
-OK de, ilk acilan pencerede yaninda + ile "Excel" belirecek
-O nodu genislet
-'Constants' nodunu fareyle, en basta actigin kosede duran kod penceresine, surukle birak
-Tum sabitler yazilacak oraya
-Object explorer'i kapat
-Kod penceresini de Ctrl+W ile kapat (yani saklayarak kapat)
Boylece elinde tum Excel sabitlerinin bulundugu xlconstants.h dosyasi olmus olur.

çetin hocam merhaba.Gerçi bu konuyu daha önce anlatmıştınız ama,üzerinden epey bi zaman geçince hatırlayamadım.Yukarıdaki yönergenize göre takip ettiğimde açılan ekranda,excelin tüm propery ve metodları gözüküyor.Benim amacım excele istediğim satırdan itibaren yeni bir(yada birkaç) satır ekletmek.mesela 10 satırdan sonra 5 satır araya ekle gibi.Ancak açılan bu ekranda, o kadar çok metod varki hangisini,ne şekilde kullanacağımı hatırlayamadım hocam.Hatırlatma yapmanız mümkün mü? smile

En büyük sermaye nakit,nakit sermaye vakittir...

13 Son düzenleyen, cetinbasoz (03.03.2010 17:27:19)

Re: excel hücreleri ile ilgili

Kafadan yaziyorum, test etmeye vaktim yok, yanlis cikarsa sonra bakalim:)

Visual Fox Pro
oExcel = createobject('excel.application')

oExcel.WorkBooks.Add()
oExcel.Visible = .T.
 
oExcel.ActiveWorkbook.ActiveSheet.Range("A1:D30").Value = "XX" && Onceden dolu hucreleri temsil ediyor
 
* 10.satirdan sonra 5 satir ekle
oExcel.ActiveWorkbook.ActiveSheet.Range('11:15').EntireRow.Insert