powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Excel 2013 медленно работает как com- сервер
44 сообщений из 44, показаны все 2 страниц
Excel 2013 медленно работает как com- сервер
    #40017898
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
объём данных небольшой,
1500 строк, 460 Кб данных, пишет 15 минут. Антивирус отключен.
обычным обращением к ячейкам (да, я знаю что правильней писать блоком)
Но та же программа, запущенная на машине с офисом 2003 отрабатывает за 26 секунд
Примерно столько же на офисе 2010.

Вопрос -
1) Сталкивались ли с таким
2) Можно ли лечить
3) Какого лешего :)
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40017902
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
use RANGE, luke!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40017908
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

это понятно.
хотя не всегда возможно (на лист вставляется куча формул)

ну и вопрос не в том.
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40017913
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
13.11.2020 13:57, _avz пишет:
> это понятно.
> хотя не всегда возможно (на лист вставляется куча формул)

одно другому не третье!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40017925
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_avz,

для твоих объемов считай, что все, что больше 10 секунд - недопустимо медленно,
независимо от версии Excel и способа его заполнения.

А так да, в каждой следующей версии Excel как com-сервер меняет свои характеристики.
Что-то становится немного быстрее, а что-то может стать и много хуже.
В среднем, в режиме удаленного ole-сервера, замедление есть...

Идея любого ускорения в этом месте строится на базе укрупнения объемов взаимодействия между процессами.
Например, создай спец. надстройку в Excel специально предназначенную для взаимодействия с твоей программой.
Данные ей отдавай, слепляя их в строки или вообще внешним файлом.
Ее и протестировать можно будет в режиме работы "сама с собой".

В таком случае, у тебя оценка появится приемлемости качества кода самой надстройки.
Так, не зная деталей, методом пол-потолок, можно предложить считать, что пока такая надстройка работает медленнее, чем за 5 секунд
работает на 2013 "сама с собой" - ее код почти наверно неприемлем.

Реальность может как-то подправить эту оценку от впятеро вниз (1 сек) до вдвое вверх (10 сек).
Вообще, код показывай, почти наверно там нелепость какая-то...
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40017929
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_avz,

разрядность приложения и версии excel соответствуют друг другу?
Если нет - у тебя при передаче данных, вообще говоря возникает трасляция адресов.
Это само по себе может сильно влиять при частых мелких взаимодействиях...
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40017955
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_avz
1500 строк, 460 Кб данных, пишет 15 минут.

Если пулять сразу одним махом, то счет пойдет на мс.
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40017963
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_avz
хотя не всегда возможно (на лист вставляется куча формул)
И формулы так же вставляй.
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40017984
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booby
_avz,

разрядность приложения и версии excel соответствуют друг другу?

обе 32
booby

Вообще, код показывай, почти наверно там нелепость какая-то


код, конечно, ленивый и банальный.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
  while not датасет.Eof do
  begin
     for  все поля
        лист.Cells.Item[строка, колонка] := датасет.поле[i];
     датасет.Next
  end
  // Вместо того чтоб лист.Range[адрес] := массив



на лист.Range[адрес] := массив я конечно перепишу, где можно.
вопрос в том, почему во столько раз медленней, чем в ранних версиях офиса.
Наш сисадмин подсказал подкрутить настройки Excel, и, надо же, удалось 14 мин ускорить до 13 с половиной. :)
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40017985
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис
_avz
хотя не всегда возможно (на лист вставляется куча формул)
И формулы так же вставляй.


то есть можно вместо
лист.Range[адрес].FormulaR1C1 := '=SUM(...)'
также писать в массив[i, j] '=SUM()' и это сработает?
ок, попробую.
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40017992
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_avz

также писать в массив[i, j] '=SUM()' и это сработает?
Так вряд ли.
Код: pascal
1.
 лист.Range[адрес].FormulaR1C1 := '=SUM(...)'


"адрес" тут может быть не одной ячейкой.
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40017995
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис,

не, у меня идут индивидуальные формулы для ячеек.
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40017998
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько помню работа с формулами как-то отличается в разных версиях.
Т.е. может работать или не работать.
Это проблема, когда у конечных пользователей разные версии экселя.
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40017999
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_avz,
Формулы на лету вставлять вообще не есть хорошо.
Лучше шаблон заготовить.
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40018004
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
13.11.2020 16:03, _avz пишет:
> на лист.Range[адрес] := массив я конечно перепишу, где можно.

ты удивишься на сколько оно тупит БЕЗ массивов.
реально.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40018007
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис
_avz,
Формулы на лету вставлять вообще не есть хорошо.
Лучше шаблон заготовить.

Там непонятно, на какой строке будет сумма.
там что такое: '=SUM(R[-236]C;R[-123]C;...R[-1]C)' или =sum(R[-236]C:R[-1]C)
где 236, 123 - вычисляются по ходу дела
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40018012
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий

13.11.2020 16:03, _avz пишет:
> на лист.Range[адрес] := массив я конечно перепишу, где можно.

ты удивишься на сколько оно тупит БЕЗ массивов.
реально.


Я знаю.
тут просто такая специфика данных.

блок1
пять строк, промежуточная сумма 1
три строки, промежуточная сумма 2
суммы по блоку1

блок2
... та же хрень
суммы по блоку2

то есть будет много обращений типа лист.Rangе :=массив, а не одно, как хотелось бы.
раз в N меньше, чем сторок, где N < 10
т.е. ускорение в N раз, N < 10
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40018013
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_avz,
Сделай формулы для именованного диапазона, а после выгрузки данных задай его адрес.
Поищи по форуму RefersTo я выкладывал образцы

(глядя на последний пост)
и открой для себя функцию "Промежуточные итоги"
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40018017
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_avz,
Кстати, у тебя именно из-за формул может тормозить. Отключи AutoCalculate перед началом выгрузки и включи по окончанию.
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40018021
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис
_avz,
Сделай формулы для именованного диапазона, а после выгрузки данных задай его адрес.
Поищи по форуму RefersTo я выкладывал образцы

(глядя на последний пост)
и открой для себя функцию "Промежуточные итоги"

это да :)
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40018024
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис
_avz,
Кстати, у тебя именно из-за формул может тормозить. Отключи AutoCalculate перед началом выгрузки и включи по окончанию.
больше всего тормозит код без формул, признаю. там на самом деле всё разрулится массивами.

Но всё-таки почему между 2013 и 2010 такая разница?

Интересно же.
И мне просто хотелось найти в Excel 2013 "волшебный флажок", чтоб всё было "как раньше" :)

Наш сисадмин пока не нашёл.
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40018025
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис
_avz,
Кстати, у тебя именно из-за формул может тормозить. Отключи AutoCalculate перед началом выгрузки и включи по окончанию.
больше всего тормозит код без формул, признаю. Там на самом деле всё разрулится массивами.

Но всё-таки почему между 2013 и 2010 такая разница?

Интересно же. Что там они в MS так испортили, чистое любопытство.
И мне просто хотелось найти в Excel 2013 "волшебный флажок", чтоб всё было "как раньше" :)

Наш сисадмин пока не нашёл.
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40018027
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_avz

Интересно же. Что там они в MS так испортили, чистое любопытство.
По-моему, начиная с 2003 г. порча идет постоянно, с акцентами на разные фронты.
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40018033
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что, использовать прямую запись (например XLSReadWriteII), получая в результате скорость записи < 1 сек, уже не в тренде?
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40018036
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
13.11.2020 17:02, Соколинский Борис пишет:
> По-моему, начиная с 2003 г. порча идет постоянно, с акцентами на разные фронты.

"борьба за качество закончена. началась борьба за покупателя"

(С) - CEO Sony
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40018039
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asutp2
А что, использовать прямую запись (например XLSReadWriteII), получая в результате скорость записи < 1 сек, уже не в тренде?


Каюсь. Пока не осилил, а надо бы.
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40018045
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дык оно НЕ бесплатное
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40018054
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий

дык оно НЕ бесплатное
и что? это не делает либу непригодной к использованию.
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40018055
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОФФ

Соколинский Борис> По-моему, начиная с 2003 г. порча идет
Соколинский Борис> постоянно, с акцентами на разные фронты.

Согласен, хотя должен признать, что визуально
(интерфейс, разные кнопочки и функции и пр.)
некоторые улучшения были (не без уродливой
неотключаемой ленты, конечно) - не помню, в
2010-й или 2014-й версии.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40018056
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
5 штук евро за Enterprise
нормально...
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40018073
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_avz
Соколинский Борис
пропущено...
И формулы так же вставляй.


то есть можно вместо
лист.Range[адрес].FormulaR1C1 := '=SUM(...)'
также писать в массив[i, j] '=SUM()' и это сработает?
ок, попробую.

Когда-то Александр Шабля написал хороший FAQ по работе с Excel, вот тут есть про вставку формул в ячейки:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1274#03
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40018078
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Погуглите TXLSFile.
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40018092
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам

Согласен, хотя должен признать, что визуально (интерфейс, разные кнопочки и функции и пр.)
некоторые улучшения были (не без уродливой неотключаемой ленты, конечно) - не помню, в
2010-й или 2014-й версии.
Главное полезное улучшение было в снятии ограничения на количество строк/столбцов.
Интерфейс с появлением ленты можно вообще не обсуждать, все свистоперделки меркнут по сравнению с общим "куда, нахрен, они засунули полезную кнопку и есть ли она вообще?".
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40018096
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_avz
5 штук евро за Enterprise
нормально...

у вас скольло разработчиков? Для одного 295 евро (+ НДС 16% до 31.12.2020 для покупателей из Германии, что для загран-покупок не знаю. С 2021 будет опять 19%)

Зато:
1) XLSReadWriteII работает ОЧЕНЬ быстро
2) предсказуемо, ибо не зависит от версии МС Оффиса, он вообще не нужен
3) можно использовать хоть в службе (Service)

XLSReadWriteII
Single license EUR 295€
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40018098
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик Семён,

Да уж я понял, что это правильная штука.
не спорю.
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40018103
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_avz
Соколинский Борис
_avz,
Кстати, у тебя именно из-за формул может тормозить. Отключи AutoCalculate перед началом выгрузки и включи по окончанию.
больше всего тормозит код без формул, признаю. там на самом деле всё разрулится массивами.

Но всё-таки почему между 2013 и 2010 такая разница?

Интересно же.
И мне просто хотелось найти в Excel 2013 "волшебный флажок", чтоб всё было "как раньше" :)

Наш сисадмин пока не нашёл.


главных флажка для тебя должно быть два - отключить обновление экрана в excel перед заполнением клеток,
и отключить автопересчет формул при их вставке, с возвратом режима пересчета по завершении автоматизации.

Их не админ, а ты в своем коде должен выставлять.
оба флажка могут критически изменить ситуацию - в сумме на порядок, вероятно.

Я даже не подозреваю, что ты эти флажки не выставляешь.
Это было бы совсем ... хм... неожиданно.
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40018106
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booby
_avz
пропущено...
больше всего тормозит код без формул, признаю. там на самом деле всё разрулится массивами.

Но всё-таки почему между 2013 и 2010 такая разница?

Интересно же.
И мне просто хотелось найти в Excel 2013 "волшебный флажок", чтоб всё было "как раньше" :)

Наш сисадмин пока не нашёл.


главных флажка для тебя должно быть два - отключить обновление экрана в excel перед заполнением клеток,
и отключить автопересчет формул при их вставке, с возвратом режима пересчета по завершении автоматизации.

Их не админ, а ты в своем коде должен выставлять.
оба флажка могут критически изменить ситуацию - в сумме на порядок, вероятно.

Я даже не подозреваю, что ты эти флажки не выставляешь.
Это было бы совсем ... хм... неожиданно.



1. Excel и так невидим при работе.
2. даже ScreenUpdating := true в office2010 не даёт таких тормозов, как в 2013
3. Понятно, что если админ найдёт флажок "глазами", я попробую его выставить программно. Пока речь о возможности ускорения в принципе
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40018108
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_avz

1. Excel и так невидим при работе.
2. даже ScreenUpdating := true в office2010 не даёт таких тормозов, как в 2013
3. Понятно, что если админ найдёт флажок "глазами", я попробую его выставить программно. Пока речь о возможности ускорения в принципе


В общем, я прогнал вам.
ScreenUpdating[0] := false;

дал ускорение с 14 мин до 48 сек.
:)

что +- приемлемо
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40018113
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_avz,

Прикинь что будет, если ты еще и авто перерасчет формул на ходу отключишь? ;)
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40018117
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat,

да, погорячился я, с вопросом.

:)
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40018139
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_avz
5 штук евро за Enterprise
нормально...

Хех, да я буржуй. У меня дома интерпрайс.
Правда, что 2007-й, но хватает за глаза.

_avz
дал ускорение с 14 мин до 48 сек.

Не, это всё равно много.
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40018228
istrebitel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
21978703
обратить внимание, что автопересчёт формул выключается после создания книги.
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40018673
Uridian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вместо этого
Код: pascal
1.
2.
  while not датасет.Eof do
     for  все поля


используй
Код: pascal
1.
Range.CopyFromRecordset
...
Рейтинг: 0 / 0
Excel 2013 медленно работает как com- сервер
    #40018733
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
44 сообщений из 44, показаны все 2 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Excel 2013 медленно работает как com- сервер
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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