|
загрузка экселя | ☑ | ||
---|---|---|---|---|
0
novichok20
18.11.14
✎
15:57
|
помогите советом и примером пожалуйста(очень нужно).загружаю эксель в табличное поле.файл очень большой и долго выгружаеться .в нем много колонок и строчек которые не нужны.как их убрать подскажите пожалуйста
|
|||
1
Wobland
18.11.14
✎
16:03
|
предлагаю читать только нужное
|
|||
2
Wobland
18.11.14
✎
16:04
|
(1) конечно, если речь идёт о чтении, а не о записи
|
|||
3
manyak
18.11.14
✎
16:04
|
||||
4
manyak
18.11.14
✎
16:07
|
до начала загрузки файла:
отключай обновление экрана и пересчет формул в excel: excell.Calculation = -4135 excell.screenupdating = false после окончания включи обратно: excell.screenupdating = true excell.Calculation = -4105 значительно ускорит процесс |
|||
5
sapphire
18.11.14
✎
16:13
|
(0)
1)файл очень большой и долго выгружаеться 2) в нем много колонок и строчек которые не нужны.как их убрать подскажите пожалуйста 1. Сначала загрузить весь используемый (или необходимый) диапазон в массив через COMSafeArray. 2. Должно быть понимание КАК определить нужность. |
|||
6
manyak
18.11.14
✎
16:14
|
и скажи конкретно "большой": это сколько строк и сколько столбцов?
|
|||
7
novichok20
18.11.14
✎
16:19
|
20 столбцов и 70000 строк (
|
|||
8
sapphire
18.11.14
✎
16:19
|
(7) Фигня
|
|||
9
manyak
18.11.14
✎
16:21
|
сделай (4) и приятно удивись :)
|
|||
10
Fram
18.11.14
✎
16:21
|
(7) перекинь в текст с разделителями. чтение файла ускорится в разы
|
|||
11
manyak
18.11.14
✎
16:28
|
ну и до кучи если логикой можно отсечь не нужные для загрузки данные, то грузи через ADODB - там прям запрос можно сваять к листу экселя - получишь тока нужные для загрузки данные.
на форуме тьма примеров, поиск по "excel adodb" |
|||
12
novichok20
18.11.14
✎
16:35
|
я извиняюсь за свою наглость но можно специально для тугодумов пример?
|
|||
13
manyak
18.11.14
✎
16:38
|
ну раз тугодум, то пример конкретно чего тебе надо?
|
|||
14
manyak
18.11.14
✎
16:42
|
вариант из (4) тупо вставляешь в свой код:
до excell.Calculation = -4135; excell.screenupdating = false; после excell.screenupdating = true; excell.Calculation = -4105; где excel - меняешь на имя переменной в которой у тебя обьект эксель |
|||
15
novichok20
18.11.14
✎
16:44
|
я имел ввиду пример в котором наглядно видно как отсеить не нужные строки и колонки
|
|||
16
Бледно Золотистый
18.11.14
✎
16:46
|
А долго загружается - это сколько по времени?
|
|||
17
manyak
18.11.14
✎
16:50
|
(15) ты прикалываешься?
открой для себя условный оператор ЕСЛИ в твоем коде проверяй по нужному тебе условию и тока потом забивай в табличное поле пример: если значение_ячейки="баба" тогда; код_загрузки_в_ТП конецесли; если хочешь запросом отфильтровать весь лист то ответ в (11) |
|||
18
novichok20
18.11.14
✎
16:54
|
(16)30мин.у меня болше вопрос состоит в том что там много не нужной информации.это выгрузка остатков из хрен знает какой проги.в которой кучу не нужных столбцов и строк.а меня интересует только пару столбцов и строки по 62 счету.я могу сам открыть и удалить (руками)то что не нужно.но нужна обработка,которая будет брать выгрузки из хрен знает какой проги и выбирать только те поля которые нужны для загрузки остатков.
|
|||
19
manyak
18.11.14
✎
16:57
|
(18) оператор ЕСЛИ как раз тебя спасет :)
если номер_строки<=62 тогда .... если номер_столбца=номер_нужного1 или номер_столбца=номер_нужного2 тогда ... |
|||
20
manyak
18.11.14
✎
16:58
|
ну а так сделай (14) в разы скорость повысится
|
|||
21
Бледно Золотистый
18.11.14
✎
17:02
|
(18) Читай через ADODB сразу запросом по нужным колонкам.
|
|||
22
18_plus
18.11.14
✎
17:03
|
читать через comsafearray, ещё в (5) подсказали.
построчно/поколоночное чтение заведомо тормознее, про проверено на файлах 25 колонок х 300 000 строк. ещё чтоб быстрее открывалось использовать не xlsx, а xlsb. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |