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);
}
|
|
|
|