powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Excel 2013 медленно работает как com- сервер
25 сообщений из 44, страница 1 из 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
25 сообщений из 44, страница 1 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Excel 2013 медленно работает как com- сервер
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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