Odczyt danych z komórki EXCELA

dział ogólny

Re: Odczyt danych z komórki EXCELA

Nowy postprzez butchermw » poniedziałek, 2 stycznia 2012, 14:23

Witam, jest możliwość obsługi arkusza kalkulacyjnego ale OpenOffice??
jeżeli tak to proszę o pomoc, bo chciałbym zrobić coś takiego że z programu chciałbym wysłać dane do poszczególnych komórek arkusza kalkulacyjnego
Avatar użytkownika
butchermw
Bladawiec
Bladawiec
 
Posty: 23
Dołączył(a): niedziela, 26 grudnia 2010, 00:39
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: WinXP/Win7
Kompilator: Builder6
Builder2010
Gadu Gadu: 0
    Windows XPFirefox

Re: Odczyt danych z komórki EXCELA

Nowy postprzez Cyfrowy Baron » poniedziałek, 2 stycznia 2012, 18:48

W środowisku C++Builder nie ma bibliotek do obsługi tego formatu.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Odczyt danych z komórki EXCELA

Nowy postprzez polymorphism » poniedziałek, 2 stycznia 2012, 19:15

Z informacji, które znalazłem na szybko wynika, że w pakiecie OO, a dokładniej w programie Calc, jakaś automatyka jest. Problem w tym, że tu zaczyna się zabawa z interfejsami COM, co nie jest zbyt proste dla początkującego. Tak więc jeśli nie wiesz, o czym piszę, daruj sobie to, chyba że znajdziesz jakąś bibliotekę, która ułatwi komunikację z aplikacjami OO (coś na wzór tych VCL-owych klas).
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: Odczyt danych z komórki EXCELA

Nowy postprzez sebaskow » czwartek, 19 stycznia 2012, 08:28

Witam.

Kiedyś również potrzebowałem takich informacji. Zrobiłem sobie małą ściągę.

Poniższe funkcje opierają się na Ole. Z góry przepraszam za błędy ale pisałem to na własny użytek.

KOD cpp:     UKRYJ  
/*

Oznaczenia poszczególnych części pliku:

V    - Oznacza klasę programu Excel
Wbk  - Oznacza klasę skoroszytu
Shts - Oznacza klasę arkusza
Rng  - Oznacza klasę zakresu komórek.

*/



    // 1 --- Tworzymy klasę dla Excela, a następnie otwieramy program
    V = Variant::CreateObject("Excel.Application");

    // --- wyświetlanie arkusza
    //V.OlePropertySet("Visible", true);

    // 2 --- Otwieramy skoroszyt, funkcja ta zwraza nam klasę do skoroszytu.
    Wbk = V.OlePropertyGet("Workbooks");

    // 3 --- Wczytujemy do otwartego skoroszytu plik o zadaniej nazwie. może to być otwarty arkusz który jest modyfikowany jak i zamknięty
    Wbk.OleFunction("Open", "C:\\Próba arkusza.xls");

    // 4 --- tworzymy klasę arkusza ( Sheets ) i oznaczanu nurer Arkusza
    Shts =   V.OlePropertyGet("Sheets",1);

    // 5 --- Możemy pobrać nazwę arkusza
    Label1->Caption =  Shts.OlePropertyGet("Name");

    // 6 --- Możemy zmodyfikować nazwę arkusza
    V.OlePropertyGet("Worksheets", 1).OlePropertySet("Name","Pierwsz sheet");

    // 7 --- Wstawianie danych do komórek
    Rng =   Shts.OlePropertyGet("Range", "C7");
    Rng.OlePropertySet("Value", "=SUMA(C3:C6)");

    Rng =   Shts.OlePropertyGet("Range", "D7");
    Rng.OlePropertySet("Value", "=SUMA(D3:D6)");

    Rng =   Shts.OlePropertyGet("Range", "E7");
    Rng.OlePropertySet("Value", "=ŚREDNIA(E3:E6)");

    // 8 --- Lub można też tak jak poniżej wraz z ustawieniem koloru
    // --- UWAGA - tutaj wskazujemy najpierw wiersz potem kolumne ( Ceels(7,5) = Range(E7)
    Rng =   Shts.OlePropertyGet("Cells", 7,5);
    Rng = Rng.OlePropertyGet("Interior");
    Rng.OlePropertySet("Color", RGB(110,110,120));

    // 9 --- Obramowanie komórek:
    Rng =   Shts.OlePropertyGet("Range", "C7:E7");
    Rng = Rng.OlePropertyGet("Borders");
    Rng.OlePropertySet("Color", RGB(250,0,0));
    Rng.OlePropertySet("LineStyle", 1);
    Rng.OlePropertySet("Weight", 2);

    // 10 --- Ustawienie wyrównania:
    Rng = Shts.OlePropertyGet("Cells", 2, 2);
    Rng.OlePropertySet("HorizontalAlignment", -4131);

    Rng = Shts.OlePropertyGet("Cells", 2, 2);
    Rng.OlePropertySet("VerticalAlignment", -4107);
        /*
            -4108       xlCenter
            -4131       xlLeft
            -4152       xlRight
            -4107       xlBottom
            -4160       xlTop
        */


    // 11 --- Ustawienie czcionki
    Rng =   Shts.OlePropertyGet("Range", "B2:E7");
    Rng = Rng.OlePropertyGet("Font");
    Rng.OlePropertySet("Color", RGB(0,0,0));
    Rng.OlePropertySet("Size", 8);
    Rng.OlePropertySet("Italic", true);

    Rng =   Shts.OlePropertyGet("Range", "C7:E7");
    Rng = Rng.OlePropertyGet("Font");
    Rng.OlePropertySet("Color", RGB(250,0,0));


    // 12 --- ustawienie szerokości kolumn
    Rng = Shts.OlePropertyGet("Columns", "H:K");
    Rng.OlePropertySet("ColumnWidth", 2.78);

    // 13 --- ustawienie wysokości wierszy
    Rng = Shts.OlePropertyGet("Rows", "10:20");
    Rng.OlePropertySet("RowHeight", 4.0);




    // 14 --- Odczytanie wartośći z konktetnej komórki
    Label2->Caption =  Shts.OlePropertyGet("Range", "C7").OlePropertyGet("Value");

    // 15 --- Podgląd wydruku
    //V.OlePropertyGet("Worksheets", 1).OleFunction("PrintPreview");

    // 16 --- Drukowanie na domyślnej drukarce
    //V.OlePropertyGet("Worksheets", 1).OleFunction("PrintOut");

    // 17 --- Drukowanie z parametrami ( czytaj na str 48 - mała książeczka za 13zł o VBA dla Excel)
    //V.OlePropertyGet("Worksheets", 1).OleFunction("PrintOut", 1,1, 1, true);

    // 18 --- Wstawienie arkusza do mojego programu przy pomocy OleContainer
    OleContainer1->CreateObjectFromFile("C:\\Próba arkusza.xls", false);
Avatar użytkownika
sebaskow
Intelektryk
Intelektryk
 
Posty: 135
Dołączył(a): wtorek, 3 maja 2011, 08:30
Lokalizacja: Katowice
Podziękował : 10
Otrzymał podziękowań: 0
System operacyjny: Windows 10
Kompilator: C++ Builder XE7
Gadu Gadu: 0
    Windows XPChrome

Poprzednia strona

  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 5 gości