Создаем график в Excel на С++
Unit1.cpp
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" #include <comobj.hpp> //Хидер для OLE объектов //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { Variant App, Bks, Bk, Shts, Sht, Cll; //Переменные App-Application, Bks-Книги, Bk-Книга, Shts-Листы, Sht-Лист, Cll-Ячейка //Создаем книгу. Начало. App=CreateOleObject("Excel.Application"); App.OlePropertySet("Visible",true); //Делаем нашу книгу видимой App.OlePropertySet("DisplayAlerts",false); //Отключаем вопрос на сохранение книги при закрытии Bks=App.OlePropertyGet("Workbooks"); //Набор рабочих книг App.OlePropertySet("SheetsInNewWorkbook",1); //Количество листов в книге. В данном случае 1 Bks.OleProcedure("Add"); //Процедура добавления Bk=Bks.OlePropertyGet("Item",1); //Текущая книга первая Shts=Bk.OlePropertyGet("Worksheets"); //Набор страниц в книге Sht=Shts.OlePropertyGet("Item",1); //С какой страницей мы будем работать Sht.OlePropertySet("Name",WideString("Листок1")); //Называем лист "Листок1" //Создаем книгу. Конец. //Шрифт и размер текста. Начало. Cll=Sht.OlePropertyGet("Range",WideString("A1:A10")); //Набор ячеек Cll.OlePropertyGet("Font").OlePropertySet("Name",WideString("Tahoma")); //Выбираем шрифт Cll.OlePropertyGet("Font").OlePropertySet("Size",12); //Размер шрифта Cll.OlePropertySet("HorizontalAlignment",-4108); //Выравнивание по горизонтали в ячейке Cll.OlePropertySet("VerticalAlignment",-4108); //Выравнивание по вертикали в ячейке //Шрифт и размер текста. Конец. //Наши данные. Начало. Cll=Sht.OlePropertyGet("Cells").OlePropertyGet("Item",1,1); // Ячейка А1 Cll.OlePropertySet("Value",1); //Наше значение 1 Cll=Sht.OlePropertyGet("Cells").OlePropertyGet("Item",2,1); // Ячейка А2 Cll.OlePropertySet("Value",2); //Наше значение 2 Cll=Sht.OlePropertyGet("Cells").OlePropertyGet("Item",3,1); // Ячейка А3 Cll.OlePropertySet("Value",3); //Наше значение 3 Cll=Sht.OlePropertyGet("Cells").OlePropertyGet("Item",4,1); // Ячейка А4 Cll.OlePropertySet("Value",4); //Наше значение 4 Cll=Sht.OlePropertyGet("Cells").OlePropertyGet("Item",5,1); // Ячейка А5 Cll.OlePropertySet("Value",5); //Наше значение 5 Cll=Sht.OlePropertyGet("Cells").OlePropertyGet("Item",6,1); // Ячейка А6 Cll.OlePropertySet("Value",7); //Наше значение 7 Cll=Sht.OlePropertyGet("Cells").OlePropertyGet("Item",10,1); // Ячейка А10 Cll.OlePropertySet("Value",3); //Наше значение 3 //Наши данные. Конец. //Создаем таблицу. Начало. Cll=Sht.OlePropertyGet("Range",WideString("A1:A10")); //С каких ячеек брать данные. У нас набор ячеек. Cll.OleProcedure("Select"); //Процедура выбора Bks=App.OlePropertyGet("Charts"); //Запрашиваем график Bks.OleProcedure("Add"); //Процедура добавления //Создаем таблицу. Конец. } //---------------------------------------------------------------------------
Unit1.h
//--------------------------------------------------------------------------- #ifndef Unit1H #define Unit1H //--------------------------------------------------------------------------- #include <System.Classes.hpp> #include <Vcl.Controls.hpp> #include <Vcl.StdCtrls.hpp> #include <Vcl.Forms.hpp> //--------------------------------------------------------------------------- class TForm1 : public TForm { __published: // IDE-managed Components TButton *Button1; void __fastcall Button1Click(TObject *Sender); private: // User declarations public: // User declarations __fastcall TForm1(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TForm1 *Form1; //--------------------------------------------------------------------------- #endif