Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[BCB] Instalacija XLSReadWriteII 4 komponenti / TExcelApplication

[es] :: C/C++ programiranje :: [BCB] Instalacija XLSReadWriteII 4 komponenti / TExcelApplication

[ Pregleda: 3573 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

itf
Zagreb

Član broj: 59794
Poruke: 993
*.adsl.net.t-com.hr.



+9 Profil

icon [BCB] Instalacija XLSReadWriteII 4 komponenti / TExcelApplication14.09.2008. u 19:58 - pre 162 meseci
Zanima me da li je itko uspješno uspio instalirati XLSReadWriteII 4 komponente za C++ Builder 2006 tj. Turbo C++ 2006? Ono što uspijem jest dodati glavnu bpl biblioteku, te klikom na gumb components mi prikaže sve tri postojeće komponente, no nikako da ih uspijem postaviti na neku paletu pa da ih mogu koristiti. Pokušao sam indirektno stvarajući novi paket ali tad me traži LIB biblioteku komponente koja ne dolazi u source-u s njom... Naravno, ne postoji niti source paketa ili sl., pa da se može direktno to instalirati...
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
*.adsl.net.t-com.hr.



+9 Profil

icon Re: [BCB] Instalacija XLSReadWriteII 4 komponenti / TExcelApplication20.09.2008. u 16:13 - pre 162 meseci
Na sreću, ove komponente mi više ne trebaju. Skužio sam kako se radi sa već ugrađenim TExcelApplication i ostalim Excel komponentama. Ako nekome bude trebalo neka javi. Ovo isto vrijedi i za MS Word komponente.
 
Odgovor na temu

cdjole
Djordje Cvijetic
Novi Sad

Član broj: 151293
Poruke: 30
*.dynamic.sbb.rs.



Profil

icon Re: [BCB] Instalacija XLSReadWriteII 4 komponenti / TExcelApplication21.09.2008. u 18:10 - pre 162 meseci
Druze, mene to zanima. Bas sam krenuo da radim neku aplikaciju koja bi ucitavala excel fajl i izvlacila sadrzaj odredjenih kolona, izmedju ostalog. Zastao sam sa radom trazeci na netu neka upustva vezano za TExcelApplication, ali slabo ima sta na engleskom. Nasao sam ovaj forum (http://cpp.developpez.com/faq/bcb/?page=msofficeexcel), cini mi se da je vrlo dobar, ali je na francuskom. Poceo sam da se bakcem sa prevodiocima ne bih li sta skontao, ali bi mi jako koristilo i kada bih imao neka uputstva na nasem jeziku, tako da bih ti bio vrlo zahvalan ukoliko bi mi ukratko objasnio rad sa tim komponentama ili uputio na neki tutorijal ukoliko si bio uspesniji u pretrazi od mene.
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
*.adsl.net.t-com.hr.



+9 Profil

icon Re: [BCB] Instalacija XLSReadWriteII 4 komponenti / TExcelApplication21.09.2008. u 21:00 - pre 162 meseci
Na formu postavi

TExcelApplication, TExcelWorkbook i TExcelWorksheet komponente. Redoslijed je takav da ova prva predstavlja aplikaciju i da preko njenih članica pristupaš direktno samo stvarima vezanima za Excel općenito. Druga i treća komponenta su za rad s podacima. Točnije, ova zadnje (ExcelWorksheet) jer se preko nje vrši upis i čitanje iz Excel-a.

Pisanje u Excel:

Code:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    ExcelApplication1->Connect();
    ExcelApplication1->Workbooks->Add(EmptyParam,LOCALE_USER_DEFAULT);
    ExcelWorkbook1->ConnectTo(ExcelApplication1->ActiveWorkbook);
    ExcelWorksheet1->ConnectTo(ExcelApplication1->ActiveSheet);
    ExcelApplication1->set_SheetsInNewWorkbook(LOCALE_USER_DEFAULT, 1);

    ExcelWorksheet1->Cells->set_Item(TVariant(1), TVariant("C"), TVariant(5));  // upis konstante
    ExcelWorksheet1->Cells->set_Item(TVariant(2), TVariant("C"), TVariant(3));  // upis konstante
    ExcelWorksheet1->Cells->get_Range(TVariant("C1"), TVariant("C2"))->Interior->set_Color((TVariant)RGB(192, 192, 192)); //farbanje
    ExcelWorksheet1->Cells->set_Item(TVariant(3), TVariant("C"), TVariant("=SUM(C1:C2)")); // upis formule

    ExcelApplication1->set_Visible(LOCALE_USER_DEFAULT,xlSheetVisible);
}


Znači, prvo pokreneš gornju funkciju koja će pokrenuti Excel. Poželjno je da sve te dijelove koda (pozive funkcija Connect) eventualno staviš u try-catch jer možda korisnik nema uopće instaliran Excel ili se dogodi neka greška pri inicijalizaciji. Nakon toga se stvara prazan dokument i onda u njega se zapišu dva broja. Treća vrijednost je string tj. formula za tu ćeliju. Pokreni pa ćeš vidjeti rezultat.

a nakon toga za čitanje koristiš get metode. Npr.:

Code:
ShowMessage((TVariant)ExcelWorksheet1->Cells->get_Item(TVariant(3), TVariant("C")));


Ima još i brdo drugih funkcija pa možeš direktno mijenjati font i veličinu nad pojedinom ćelijom:

Code:
ExcelWorksheet1->Cells->get_Range(TVariant("A1"), TVariant("A1"))->Font->set_Bold(TVariant(true));  
ExcelWorksheet1->Cells->get_Range(TVariant("A1"), TVariant("A1"))->Font->set_Size(TVariant(20));


ili mijenjati širinu ćelije:

Code:
ExcelWorksheet1->Cells->set_ColumnWidth(TVariant(6));


Sve ovisi što ti treba, ali mislim da će ti ovo biti za sada i više nego dovoljno ;)
 
Odgovor na temu

cdjole
Djordje Cvijetic
Novi Sad

Član broj: 151293
Poruke: 30
*.dynamic.sbb.rs.



Profil

icon Re: [BCB] Instalacija XLSReadWriteII 4 komponenti / TExcelApplication21.09.2008. u 21:59 - pre 162 meseci
Hvala. :) Bice sasvim dovoljno za pocetak, da shvatim kako funkcionise ovo, a posle ce verujem vec biti lakse.
 
Odgovor na temu

cdjole
Djordje Cvijetic
Novi Sad

Član broj: 151293
Poruke: 30
*.dynamic.sbb.rs.



Profil

icon Re: [BCB] Instalacija XLSReadWriteII 4 komponenti / TExcelApplication23.09.2008. u 01:29 - pre 162 meseci
Malo sam se zanimao sa ovim, pa sam naisao na problem. Pokusao sam da napravim malu aplikaciju koja bi ucitala .xls fajl i ispisala u memo sadrzaj prvih nekoliko celija neke kolone (npr. kolone "B").

Code:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if ( OpenDialog1->Execute() )
    {
        _WorkbookPtr wb;
        _WorksheetPtr ws;

        AnsiString FN = OpenDialog1->FileName;

        ExcelApplication1->Connect();

        wb = ExcelApplication1->Workbooks->Open(WideString(FN));
        ws = ExcelApplication1->ActiveSheet;

        for (int i = 1 ; i <= 5; i++ )
                Memo1->Lines->Strings[i] = (String)((TVariant)ws->Cells->get_Item(TVariant(i),TVariant("B")));
        
        ExcelApplication1->Disconnect();
     }
}


Problem je sto mi ovo nista ne ispisuje u memo (tj. tacnije bi bilo da kazem da ispisuje nista, odnosno posle ovog prvih 6 redova u memo-u bude prazno, kao da udari samo ENTER), ne znam da li sam ovaj TVariant dobro konvertovao u String ili je nesto drugo u pitanju, pa bi mi dobrodosla bilo kakva pomoc ukoliko ima nekih ideja.


[Ovu poruku je menjao cdjole dana 23.09.2008. u 02:42 GMT+1]

[Ovu poruku je menjao cdjole dana 23.09.2008. u 02:43 GMT+1]
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
161.53.237.*



+9 Profil

icon Re: [BCB] Instalacija XLSReadWriteII 4 komponenti / TExcelApplication23.09.2008. u 08:41 - pre 162 meseci
Probaj ovako:

Code:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    _Workbook* WB;

    ExcelApplication1->Connect();
    WB = ExcelApplication1->Workbooks->Open(WideString("c:\\test.xls"),
                                EmptyParam, EmptyParam, EmptyParam,
                                EmptyParam, EmptyParam, EmptyParam,
                                EmptyParam, EmptyParam, EmptyParam,
                                EmptyParam, EmptyParam, EmptyParam, TVariant(0));

    ExcelWorkbook1->ConnectTo(WB);
    ExcelWorksheet1->ConnectTo(ExcelWorkbook1->Worksheets->get_Item(TVariant(1)));

    Memo1->Lines->Clear();
    for(int i = 1; i < 10; i++)
        Memo1->Lines->Add((TVariant)ExcelWorksheet1->Cells->get_Item(TVariant(i), TVariant("A")));

    ExcelApplication1->set_Visible(LOCALE_USER_DEFAULT,xlSheetVisible);
}


Ovaj dio koda čita prvih 10 redova stupca A i ispisuje ih u memo.
 
Odgovor na temu

cdjole
Djordje Cvijetic
Novi Sad

Član broj: 151293
Poruke: 30
*.dynamic.sbb.rs.



Profil

icon Re: [BCB] Instalacija XLSReadWriteII 4 komponenti / TExcelApplication23.09.2008. u 14:48 - pre 162 meseci
Odlicno. Radi. Hvala. :)
 
Odgovor na temu

[es] :: C/C++ programiranje :: [BCB] Instalacija XLSReadWriteII 4 komponenti / TExcelApplication

[ Pregleda: 3573 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.