/*
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);