|
Обход ячеек табличного документа или таблицы значений | ☑ | ||
---|---|---|---|---|
0
Евгений Терехов
06.10.14
✎
12:35
|
Как будет быстрее: обходить каждую ячейку табличного документа или же преобразовать ТД в таблицу значений и обходить ячейки таблицы значений?
|
|||
2
Smallrat
06.10.14
✎
12:45
|
(1) Обходом ячеек наверное )
|
|||
3
Евгений Терехов
06.10.14
✎
12:50
|
(1) Обходом каждой ячейки ТД запись в ячейку ТЗ))
Но без записи. Вообщем задача состоит в редактировании табличного документа по определенным правилам. Функция по которой редактируется значение в ячейке в разработке. Но отредактированное значение записывается в текущую ячейку ТД (или ТЗ). Результат выводится в ТЗ. Так вот вопрос именно в скорости записи: в ячейку ТД или ТЗ. |
|||
4
Classic
06.10.14
✎
12:51
|
Один раз обходить надо?
|
|||
5
Евгений Терехов
06.10.14
✎
12:52
|
(3) Блин, немного бред конечно)
Вообщем преобразовывать ТД в ТЗ все равно прийдется, вот только делать это до или после редактирования текста в ячейках? |
|||
6
Евгений Терехов
06.10.14
✎
12:53
|
(4) Получается что каждую ячейку нужно обходить 1 раз при преобразовании ТД в ТЗ и несколько раз в процессе редактирования.
|
|||
7
Евгений Терехов
06.10.14
✎
13:03
|
Ладно, буду экспериментировать.
|
|||
8
hhhh
06.10.14
✎
13:03
|
(5) а ТД откуда взялся? Если из запроса, то имеет смысл сразу результат запроса выгрузить в ТЗ.
|
|||
9
Евгений Терехов
06.10.14
✎
13:05
|
(8) ТД копируем из экселя или другого табличного документа.
ТД - первоначальные данные которые нужно отредактировать. |
|||
10
Euguln
06.10.14
✎
13:05
|
А может проще загнать в структуру, ключ - адрес ячейки.
|
|||
11
Галахад
гуру
06.10.14
✎
13:05
|
(9) Ну так и читайте в таблицу.
|
|||
12
Евгений Терехов
06.10.14
✎
13:11
|
(10) Редактирование происходит по строкам.
Делать структуру строк со вложенными структурами ячеек? Но результат все равно нужен в ТЗ. (11) Вы имеете ввиду ТЗ? На форме будет ПолеТабличногоДокумента, в которое пользователь вставляет начальную таблицу. В ТЗ таблицу не вставишь. |
|||
13
Euguln
06.10.14
✎
13:13
|
(12) И что, кто мешает обходить структуру по ключу "R"+i+"С"+j
|
|||
14
Repey
06.10.14
✎
13:13
|
||||
15
Евгений Терехов
06.10.14
✎
13:20
|
(14) Ого, не знал что так можно, сейчас попробую.
|
|||
16
Евгений Терехов
06.10.14
✎
13:27
|
(14) Огромное спасибо за ссылку на тему, и огромное спасибо МихаилМ за способ преобразования ТД в ТЗ.
Но все же остается вопрос в скорости записи значений в ячейки: ТД или ТЗ? |
|||
17
МихаилМ
06.10.14
✎
13:27
|
(14)
ТАМ ОШИБКА этот алгоритм медленней обычного добавления строк хотя фокус интересный получился ошибка из-за тестирования под отладчиком. |
|||
18
Евгений Терехов
06.10.14
✎
13:31
|
(17) Почему же медленней?
Только что кинул в ИсточникДанных ТД 5000 строк - результат меньше секунды, почти мгновенно. Обход ячеек занимает ~1 секунда на 1000...1500 строк (на моем железе) |
|||
19
Евгений Терехов
06.10.14
✎
13:40
|
(18) +ТД >100 000 строк на 12 колонок: 3 секунды, обход ячеек около 1,5 минуты.
|
|||
20
МихаилМ
06.10.14
✎
13:43
|
+(17)
извиняюсь это алгоритм генерации пустой ТЗ он медленней добавить() в 2 раза. (18) возможно Вы делаете замеры в режиме отладки. |
|||
21
Евгений Терехов
06.10.14
✎
13:49
|
(20) Никаких замеров не делал, просто в режиме предприятия запускал, так ваш алгоритм очень хорош для преобразования больших ТД в ТЗ.
Не обращал внимания на то, что построитель запроса такое может. А по поводу темы мне кажется, что считывание и запись значений ячеек ТЗ производится гораздо быстрее чем в ТД. |
|||
22
МихаилМ
06.10.14
✎
14:04
|
(21)
возможно замена медленного метода Выгрузить() заполнение построчное ТЗ увеличит скорость преобразования. |
|||
23
Евгений Терехов
06.10.14
✎
14:07
|
(22) Спасибо.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |