Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

29 Январь 2020, 20:09 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Здесь можно поблагодарить участников форума Улыбка
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1 2 »   Вниз
  Печать  
Автор Тема: Деградация скорости у функции setDataArray()  (Прочитано 671 раз)
0 Пользователей и 1 Гость смотрят эту тему.
mikekaganski
Мастер
*****
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 1 671


« Ответ #52824: 3 Декабрь 2019, 22:49 »

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

Тем временем воспользуйтесь числовым форматом, который просто скрывает нули:

Код:
sub DataArray
  doc = ThisComponent

  range = doc.Sheets(0).getCellRangeByPosition(0,0,0,900000-1)
  cell = range.GetCellByPosition(0, 0)
  locale = doc.NumberFormats.getByKey(cell.NumberFormat).Locale
  nFmtId = doc.NumberFormats.queryKey("0;-0;", locale, False)
  if nFmtId = -1 then _
    nFmtId = ThisComponent.NumberFormats.addNew("0;-0;", locale)
  range.NumberFormat = nFmtId

  dim data(0 to 900000-1)
  for i = 0 to 900000 - 1
    if (i mod 10 = 0) Then data(i) = array(0) else data(i) = array(i)
  next i
  t = now()
  range.setDataArray(data())
  MsgBox Format(now() - t, "[ss] "" s""")
end sub
Записан

С уважением,
Михаил Каганский
Страниц: 1 2 »   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!