...
my_range.Exec(SetValue << ...);
my_range.OlePropertySet("HorizontalAlignment",xlA);
Еxcel
И вообще правильно ли я выбираю, если мне требуются на форме таблицы с возможность добавления формул и т.д.
Ты через BDE что ль работаешь? Если тебе нужны таблицы НА форме, то самое подходящее дело для этого - использовать компонент F1Book на странице ActiveX - упрощенный вариант Excel со всем нужным. Обращение с ним простое, все дела... Ну а если нужен сам Excel, "вживе и въяве", то лучше использовать OleContainer - тормозит малясь, зато весь excel в твоём распоряжении...
...
<открываем новую книгу в Excel, делаем её видимой, добираемся до активного листа, обозвав его my_worksheet>
...
PropertyGet Range("Range");
my_range = my_worksheet.Exec(Range << "A1");
my_range.OlePropertySet("Height",20);
При компиляции две последние строчки проглатываются "на ура", а вот непосредственное выполнение программы прерывается на них с ошибкой
Project <имя проекта> raised exceprion class EOleSysError with message "Ошибка". Process ...
и при этом открывается текст sysvari.h с указанием на строку, помеченную >>>
template <class P1>
void Variant::OlePropertySet(const String& name, P1 p1)
{
TAutoArgs<1> args;
args[1] = p1;
>>> OlePropertySet(name,
static_cast<TAutoArgsBase&>(args));
}
Программе почему-то не нравится имя свойства - Height, если я не ошибаюсь. Хотя, например код типа
ShowMessage(my_range.OlePropertyGet("Height")) для указанной ячейки выполняется без вопросов и выкидывает высоту ячейки. В чём проблема, может кто знает?
Цитата:
Originally posted by Azaze1
Тоже вопросик по Excel - изменение параметров ячейки. Есть такой фрагмент кода:
...
<открываем новую книгу в Excel, делаем её видимой, добираемся до активного листа, обозвав его my_worksheet>
...
PropertyGet Range("Range");
my_range = my_worksheet.Exec(Range << "A1");
my_range.OlePropertySet("Height",20);
При компиляции две последние строчки проглатываются "на ура", а вот непосредственное выполнение программы прерывается на них с ошибкой
Project <имя проекта> raised exceprion class EOleSysError with message "Ошибка". Process ...
и при этом открывается текст sysvari.h с указанием на строку, помеченную >>>
template <class P1>
void Variant::OlePropertySet(const String& name, P1 p1)
{
TAutoArgs<1> args;
args[1] = p1;
>>> OlePropertySet(name,
static_cast<TAutoArgsBase&>(args));
}
Программе почему-то не нравится имя свойства - Height, если я не ошибаюсь. Хотя, например код типа
ShowMessage(my_range.OlePropertyGet("Height")) для указанной ячейки выполняется без вопросов и выкидывает высоту ячейки. В чём проблема, может кто знает?
Тоже вопросик по Excel - изменение параметров ячейки. Есть такой фрагмент кода:
...
<открываем новую книгу в Excel, делаем её видимой, добираемся до активного листа, обозвав его my_worksheet>
...
PropertyGet Range("Range");
my_range = my_worksheet.Exec(Range << "A1");
my_range.OlePropertySet("Height",20);
При компиляции две последние строчки проглатываются "на ура", а вот непосредственное выполнение программы прерывается на них с ошибкой
Project <имя проекта> raised exceprion class EOleSysError with message "Ошибка". Process ...
и при этом открывается текст sysvari.h с указанием на строку, помеченную >>>
template <class P1>
void Variant::OlePropertySet(const String& name, P1 p1)
{
TAutoArgs<1> args;
args[1] = p1;
>>> OlePropertySet(name,
static_cast<TAutoArgsBase&>(args));
}
Программе почему-то не нравится имя свойства - Height, если я не ошибаюсь. Хотя, например код типа
ShowMessage(my_range.OlePropertyGet("Height")) для указанной ячейки выполняется без вопросов и выкидывает высоту ячейки. В чём проблема, может кто знает?
Rang.OlePropertySet("RowHeight", 60);
Цитата:
Originally posted by kot_
Rang.OlePropertySet("RowHeight", 60);
Rang.OlePropertySet("RowHeight", 60);
Great thanks... Всё работает. Была ведь идея дописать Row (почти как в VB), тока вот что-то стормозил =)
1) как в ячейке установить выравнивание по краю/центру (через OlePropertySet())? Пробовал HorizontalAlignment, он его проглатывает, но надпись в ячейке так и остаётся неотформатированной...
2) как можно наладить переключение между листами книги?
Хотя нет, не надо. Сам во всё разобрался...
Цитата:
Originally posted by Azaze1
как в ячейке установить выравнивание по краю/центру (через OlePropertySet())? Пробовал HorizontalAlignment, он его проглатывает, но надпись в ячейке так и остаётся неотформатированной...
как в ячейке установить выравнивание по краю/центру (через OlePropertySet())? Пробовал HorizontalAlignment, он его проглатывает, но надпись в ячейке так и остаётся неотформатированной...
Не подскажешь, как все-таки быть, когда форматирование "проглатывается"?
Цитата:
Originally posted by waterman
Не подскажешь, как все-таки быть, когда форматирование "проглатывается"?
Не подскажешь, как все-таки быть, когда форматирование "проглатывается"?
"Проглатывается" скорее всего из-за того, что сперва форматируешь, а потом заносишь данные. Т.е. делай наоборот:
Код:
где xlA принимает значения:
Center -4108
Left -4131
Right -4152
General 1