Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ExcelApplication, работа с ExcelApplication 
:(
    Опции темы
draCOOLa
Дата 10.4.2008, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 23.12.2007

Репутация: нет
Всего: нет



Народ, есть ли у кого примеры как работать с компонентами ExcelApplication1 и ExcelWorkBook1. Именно работа с этими компонентами, а не как описание по ссылке http://wladm.narod.ru/ с серверами автоматизации.
Знаете что то вроде этого http://zando.org.ru/content/view/16/31/   только на C++ Builder. Заранее благодарен...
 
PM MAIL   Вверх
draCOOLa
Дата 10.4.2008, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 23.12.2007

Репутация: нет
Всего: нет



Ну или напишите плиз основные функции

1)ExcelApplication1->Connect();

2) Открытие имеющиего файла на диске С:

3) Вставка инф-ции в файл из подпустим Edit1

спасибо...
PM MAIL   Вверх
cra6
Дата 10.4.2008, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 10.12.2007

Репутация: нет
Всего: 2



функции для открытия Еxcel  и вставки в ячейки значений

Код


void __fastcall THistForm::ExcelInit(String File)
{
  // если Excel запущен - подключиться к нему 
  try {
   App=Variant::GetActiveObject("Excel.Application");
  } catch(...) {
     // Excel не запущен - запустить его
     try { App=Variant::CreateObject("Excel.Application"); } catch (...) {
      Application->MessageBox("Невозможно открыть Microsoft Excel!"
      "Возможно Excel не установлен на компьютере.","Ошибка",MB_OK+MB_ICONERROR);
  } }
  try {
    if(File!="")
     App.OlePropertyGet("WorkBooks").OleProcedure("Open",File);
    else
     App.OlePropertyGet("WorkBooks").OleProcedure("add");
    Sh=App.OlePropertyGet("WorkSheets",1);
  } catch(...) {
    Application->MessageBox("Ошибка открытия книги Microsoft Excel!",
                                         "Ошибка",MB_OK+MB_ICONERROR);
  }
}/* ExcelInit() */
//----------------------------------------------------------------



void __fastcall THistForm::toExcelCell(int Row,int Column, AnsiString data)
{
  try {
    Variant  cur = Sh.OlePropertyGet("Cells", Row,Column);
    cur.OlePropertySet("Value", data.c_str());
  } catch(...) { ; }
}/* toExcelCell() */
//------------------------------------------------------------------------
void __fastcall THistForm::toExcelCell(int Row,int Column, Variant data)
{
  try {
    Variant  cur = Sh.OlePropertyGet("Cells", Row,Column);
    cur.OlePropertySet("Value", data);
  } catch(...) { ; }
}/* toExcelCell() */
//---------------------------------------------------------------------------

void __fastcall THistForm::formulaExcel(int sRow, int sColumn, int row)
{


   try {
    App.OlePropertyGet("Cells", sRow, sColumn).OlePropertySet("FormulaR1C1",
                        ("=СУММ(R[-"+AnsiString(row)+"]C:R[-1]C)").c_str());
  } catch(...) { ; }
  }

PM MAIL   Вверх
draCOOLa
Дата 10.4.2008, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 23.12.2007

Репутация: нет
Всего: нет



Спасибо. Но это опять же без этих компонентов...
PM MAIL   Вверх
draCOOLa
Дата 11.4.2008, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 23.12.2007

Репутация: нет
Всего: нет



Народ, ну ладно хрен с ними с этими компонентами подскажите как продолжить этот код,
что бы произветси допустив вставку и edit, а ячеку  допустим А1 в открывшемся файле 

Цитата

Variant my_excel = Variant::CreateObject("excel.application");
Variant all_workbooks;
Variant my_workbook;
all_workbooks = my_excel.OlePropertyGet("Workbooks");
my_excel.OlePropertySet("SheetsInNewWorkbook",(Variant)1);
Procedure Open("Open");
all_workbooks.Exec(Open << "d:\\book.xls");
my_excel.OlePropertySet("Visible", (Variant)true);


спасибо

Добавлено через 35 секунд
Народ, ну ладно хрен с ними с этими компонентами подскажите как продолжить этот код,
что бы произветси допустив вставку и edit, а ячеку  допустим А1 в открывшемся файле 

Цитата

Variant my_excel = Variant::CreateObject("excel.application");
Variant all_workbooks;
Variant my_workbook;
all_workbooks = my_excel.OlePropertyGet("Workbooks");
my_excel.OlePropertySet("SheetsInNewWorkbook",(Variant)1);
Procedure Open("Open");
all_workbooks.Exec(Open << "d:\\book.xls");
my_excel.OlePropertySet("Visible", (Variant)true);


спасибо

PM MAIL   Вверх
draCOOLa
Дата 13.4.2008, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 23.12.2007

Репутация: нет
Всего: нет



Народ, вот докапался вот до чего:

Код

Variant my_excel = Variant::CreateObject("excel.application");
Variant all_workbooks;
Variant my_workbook;
Variant my_range;
Variant my_worksheet;
all_workbooks = my_excel.OlePropertyGet("Workbooks");
my_excel.OlePropertySet("SheetsInNewWorkbook",(Variant)1);
Procedure Open("Open");
all_workbooks.Exec(Open << "d:\\book.xls");
my_excel.OlePropertySet("Visible", (Variant)true);

PropertyGet Range("Range");
PropertyGet SetValue("Value");
my_workbook = my_excel.OlePropertyGet("ActiveWorkbook");
my_worksheet = my_workbook.OlePropertyGet("ActiveSheet");
Range.ClearArgs();
SetValue.ClearArgs();
my_range = my_worksheet.Exec(Range << "A1");
my_range.Exec(SetValue << "My Excel Worksheet");


Но выдает ошибку "Не совпадение типов"
PM MAIL   Вверх
EEEEEE
Дата 13.4.2008, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 15.5.2006

Репутация: нет
Всего: нет



Это из другой песни, но может поможет.

Код

//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   OleVariant ItemIndex = 1;

    //Запуск приложения Word
    WordApplication1->Connect();
    WordApplication1->Visible=true;
    //Задание заголовка для окна Word
    WordApplication1->Caption = StringToOleStr("Borland Word Server Example");
    //Добавление нового документа
    WordApplication1->Documents->Add(EmptyParam, EmptyParam);
    WordDocument1->ConnectTo(WordApplication1->Documents->Item(ItemIndex));
    WordDocument1->Range(EmptyParam, EmptyParam)->InsertAfter(StringToOleStr("This is a default font"));
    WordDocument1->Range(EmptyParam, EmptyParam)->InsertAfter(StringToOleStr('\n'));
    WordDocument1->Range(EmptyParam, EmptyParam)->InsertAfter(StringToOleStr("This is a bold font, size - 14"));
    WordFont1->ConnectTo(WordDocument1->Sentences->get_Last()->get_Font());
    WordFont1->Bold=true;
    WordFont1->Size=14;
    WordDocument1->Range(EmptyParam, EmptyParam)->InsertAfter(StringToOleStr('\n'));
    WordDocument1->Range(EmptyParam, EmptyParam)->InsertAfter(StringToOleStr("This is a bold italic font, size - 16, color - Red"));
    WordFont1->ConnectTo(WordDocument1->Sentences->get_Last()->get_Font());
    WordFont1->Italic = true;
    WordFont1->Size=16;
    WordFont1->Color = wdColorRed;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
   OleVariant SaveChanges = wdDoNotSaveChanges;
   OleVariant OriginalFormat = Unassigned;
   OleVariant RouteDocument = Unassigned;

   WordApplication1->Quit(SaveChanges, OriginalFormat, RouteDocument);
   WordApplication1->Disconnect();
}
//---------------------------------------------------------------------------


PM MAIL   Вверх
draCOOLa
Дата 14.4.2008, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 23.12.2007

Репутация: нет
Всего: нет



А это работа с Word, компонент WordApplication. Спасибо, но не то...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0449 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.