powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Массовое объединение групп ячеек в Calc - как ускорить работу ?
7 сообщений из 7, страница 1 из 1
Массовое объединение групп ячеек в Calc - как ускорить работу ?
    #39696798
bav9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую, господа.

Ох уж эти наши бухгалтера, хлебом не корми, дай новый отчёт придумать, да с формой подзаковыристой..

Столкнулся с тем, что при динамическом заполнении шаблона в Calc возникает необходимость в объединении групп ячеек по ходу заполнения формы. Вклинил в код команду типа "sheet1.getCellRangeByPosition(1, n6, 1, n7-1).merge(true);", но вот больно уж она медленно работает. 3 тыс. строк отчёта формируются за 2 минуты, а объединение групп ячеек в половине этих строк - идёт полчаса. 8-(
Уже и форму скрыл, и орфографию отключил - всего на пару минут меньше времени ушло..

Поделитесь опытом, плиз, как можно ускорить динамическое объединение ячеек ?

Мысль возникла, сохранить отчёт в .ODS, открыть как архив, вытащить xml с данными и напрямую поработать с ним. Затем - обратно в .ODS запаковать. Так, думаю, по времени обработки на порядок лучше будет, да только возни с реализацией много. Может быть есть уже готовый способ быстрого, нет, мгновенного (!) объединения ячеек ?

** Попутно, подскажите, пожалуйста, каким образом в таких объединённых ячейках можно расположение текста изменить, слева-справа-посередине ?

Спасибо.
...
Рейтинг: 0 / 0
Массовое объединение групп ячеек в Calc - как ускорить работу ?
    #39696839
Котовасия
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bav9,
о чем вообще речь, что за Calc? Табличный процессор?
Расскажи, что ты делаешь, как и какими средствами, а то "орфографию отключил" - и что? Ты вообще знаешь, что тут ветка форума о Delphi?
...
Рейтинг: 0 / 0
Массовое объединение групп ячеек в Calc - как ускорить работу ?
    #39696843
bav9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кхм..
Calc - это электронная таблица по типу Excel. Входит в широко распространённый бесплатный офисный пакет OpenOffice. Возникла необходимость из Дельфи управлять документом, открытым в Calc-e. Для этого используются спец.методы доступа и хитрые команды с, зачастую, очень запутанным синтаксисом.
8-)
...
Рейтинг: 0 / 0
Массовое объединение групп ячеек в Calc - как ускорить работу ?
    #39696857
Котовасия
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bav9,

теперь все понятно, спасибо.

Попробуй применять правильные методы, чтобы обеспечить решение твоей задачи. А если не поможет - отдохни, и попробуй подойти к решению задачи с другой стороны. Примени ТРИЗ, AGILE, используй RUP. В крайнем случае - найми программиста.
Надеюсь, помог.
...
Рейтинг: 0 / 0
Массовое объединение групп ячеек в Calc - как ускорить работу ?
    #39696896
bav9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ради интереса попробовал через пакет uOpenOffice, чёт, ещё больше скорость упала..
8-(
...
Рейтинг: 0 / 0
Массовое объединение групп ячеек в Calc - как ускорить работу ?
    #39696910
Котовасия
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bav9Ради интереса попробовал через пакет uOpenOffice, чёт, ещё больше скорость упала..
8-(
Ты наверняка что-то не так делаешь. Попробуй по-другому.
Я отчет таких размеров формирую за доли секунды, с объединениями и группировками.
...
Рейтинг: 0 / 0
Массовое объединение групп ячеек в Calc - как ускорить работу ?
    #39697453
bav9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А да сам себе и отвечу :
В недрах интронета откопал волшебные команды, отключающие runtime-отрисовку, они дали эффект ускорения заполнения полей открытого документа Calc-a примерно в 10 раз. Сделал так :

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
// загружаем документ в Calc
...
doc1:=desctop.loadComponentFrimURL(....
...
// отключаем отрисовку
doc1.lockControllers;
doc1.addActionLock;

** далее в циклах идёт заполнение документа, форматирование ячеек и т.д.

// включаем всё обратно

doc1.unLockControllers;
doc1.removeActionLock;




Мдя..без бутылки, кто б догадался..
8-)

Модератор: Пользуйтесь тегом (кнопкой) SRC для оформления кода, пожалуйста.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Массовое объединение групп ячеек в Calc - как ускорить работу ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]