C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Как скопировать массив Variant в Range Excel'а?
telepath
Отправлено: 09.06.2004, 12:22


Станционный диспетчер

Группа: Участник
Сообщений: 132



Никто не знает как скопировать (передать) массив Variant в Excel?
MDM
Отправлено: 09.06.2004, 13:19


Не зарегистрирован







QUOTE (telepath @ 09/06/2004, 13:24)
Никто не знает как скопировать (передать) массив Variant в Excel?

Передавай через клипбоард. См. ниже тему "ListView и OLE" там есть примерный код. Довольно быстро работает.
olegenty
Отправлено: 09.06.2004, 13:59


Ветеран

Группа: Модератор
Сообщений: 2412



1. Читаешь уроки на данном сайте.
2. Осмысливаешь прочитанное, практикуешься.
3. Понимаешь, что (в контексте уроков) передавать Variant массив надо так же, как и всё остальное другое, а именно:
CODE

void __fastcall toExcel(Variant App,const char *Exc, Variant data)
{
 try {
   App.OlePropertyGet("Range", Exc).OlePropertySet("Value", data);
 } catch(...) {; }
}


и проверяешь своё предположение следующим куском кода:
CODE

   try
   {
       ex = Variant::CreateObject("Excel.Application");
       
       Variant A(OPENARRAY(int, (0, 4)), varVariant);
       A.PutElement(1,0);
       A.PutElement(1234.5678,1);
       A.PutElement("Hello world",2);
       A.PutElement(true,3);
       A.PutElement("011",4);

       toExcel(ex, "A2:E2", A);

       ex.OlePropertySet("Visible", true);
       ex.Clear();
   } catch (...)
   {
       Application->MessageBox("Невозможно открыть Excel",
                               "Возможно, Excel не установлен на Вашем компьютере",
                               MB_OK + MB_ICONERROR);
   }

Вернуться в Вопросы программирования в C++Builder