|
Оптимальный вариант загрузки из эксель | ☑ | ||
---|---|---|---|---|
0
falselight
14.05.20
✎
05:41
|
Что бы загрузка происходила быстро, каким образом следует производить подключение к эксель листу????
Говорят через ком соединение долго. А как тогда? |
|||
1
вым
14.05.20
✎
05:46
|
(0) через Маню)
|
|||
2
Turku
14.05.20
✎
05:57
|
(0) Методом Прочитать() у табличного документа.
|
|||
3
Irbis
14.05.20
✎
05:58
|
Лучше ёксель в csv слить, текст быстрее читается. Это если файлы нормальные, от 1 млн строк.
|
|||
4
ДенисЧ
14.05.20
✎
06:09
|
Через ADO ещё не предлагали?
|
|||
5
falselight
14.05.20
✎
06:18
|
То есть через ком соединение сейчас не рекомендуется категорически делать?
|
|||
6
falselight
14.05.20
✎
06:20
|
(2) А табличный документ от куда берется?
|
|||
7
falselight
14.05.20
✎
06:21
|
(3) То есть вы предлагаете загрузку с csv ??? Речь о загрузке с эксель.
Как открываете эксель для обработки? |
|||
8
Irbis
14.05.20
✎
06:27
|
(7) Через "ком", но csv практичнее. Особенно когда на обработку приходят файлы в 2-3 млн строк. В качестве извращения через Ёксель можно пересохранить исходник в csv и работать с ним. Но если размер файла в несколько десятков тысяч строк, то можно и не заморачиваться.
|
|||
9
falselight
14.05.20
✎
06:36
|
(8) А как пересохраняете? И ничего не теряется?
А во сколько документов, такие файлы грузите? |
|||
10
falselight
14.05.20
✎
06:38
|
(8) Вроде как через ком соединение все же долго, и 600 достаточно.
Что бы кто то высказал в пользу такой загрузки недовольство. Или я ошибаюсь? |
|||
11
falselight
14.05.20
✎
06:42
|
всегда делал через ком соединение. А тут выясняется что это не рекомендуемая методика.
Я вот и думаю как делать правильно, кто скажет? csv понятно что это быстро, но тут речь о экселе |
|||
12
Irbis
14.05.20
✎
06:44
|
(9)SaveAs, там нужный параметр (ЕМНИП второй по счету) указываешь и алга. Из нескольких документов, полученных из разных мест, собираю один отчет. В исходниках по 50-60 столбцов, и до 1,6 млн строк. И в базу для анализа, топам отчет по верхам, низам сверка до строки нужна.
|
|||
13
Irbis
14.05.20
✎
06:47
|
(11) Почему не рекомендуемая? Просто временные затраты на открытие одного файла не покрывают время его обработки. Тупа файл открывается 20 секунд, а обрабатывается 1 с. А вот когда на входе несколько десятков файлов с 3-4 листами разной структуры по многатысяч строк и из всего этого нужно слепить отчет или выбрать только необходимое... пуркуапа?
|
|||
14
Галахад
гуру
14.05.20
✎
06:58
|
(6) 1С умеет читать xls документы самостоятельно.
|
|||
15
falselight
14.05.20
✎
09:36
|
(12) Сохранить как их эксель? что за параметр?????
(14) как? |
|||
16
VladZ
14.05.20
✎
09:40
|
||||
17
Irbis
14.05.20
✎
09:50
|
||||
18
fisher
14.05.20
✎
10:13
|
(5) Ну как не рекомендуется? Если можно без него, то лучше конечно же без него. Зачем нужны лишние внешние зависимости?
Через ADO чтение очень быстрое и можно работать с листами по отдельности но есть свои ньюансы. Когда пробовал штатное чтение когда оно появилось - пришлось отказаться. Какие были бока уже не помню. Скорее всего уже допилили. Так что если штатное чтение устроит - то какой смысл использовать внешние библиотеки? Мы пока продолжаем по инерции ADO использовать. Работает - не трожь :) |
|||
19
Eiffil123
14.05.20
✎
10:44
|
(18) не рекомендуемая самим майкрософтом.
И действительно, у нас на одном из проектов для целей МСФО данные собирались через формы сбора в формате excel. И периодически ловили крайне трудновыявляемые ошибки, типа пользователь где-то в конце таблицы поставил пробел или фильтр в ненужном месте и после этого файл через com уже не открывается, хотя пользователь с ним может работать. Табличным документом к сожалению открыть не получалось, т.к. файл был с макросами. А на другом проекте также собирали данные через файлы excel, но там макросов не было, поэтому файл прекрасно читался табличным документом. Получалось и удобнее и быстрее. |
|||
20
Eiffil123
14.05.20
✎
10:45
|
(8) Общее количество строк и столбцов на листе 1 048 576 строк и 16 384 столбца. Т.е. 2-3 млн не может быть в файле excel на одном листе )
|
|||
21
Новиков
14.05.20
✎
10:48
|
(18) посредством каких-то провайдеров/драйверов ADO есть возможность SQL запросы писать на прямую к листу, без предварительной обработки. Когда-то давно, это меня выручало, если нужно было быстро проверить что-то, не запуская саму обработку в 1С. Кстати, тогда же я узнал, что и к файлам *.txt можно запросы писать :)
|
|||
22
ildary
14.05.20
✎
10:56
|
(21) извините, можно поподробнее рассказать, как к файлам *.txt писать запросы?
|
|||
23
Lama12
14.05.20
✎
11:11
|
(22) Нужно драйвер ADO поставить.
|
|||
24
Lama12
14.05.20
✎
11:13
|
(22) В винде поставить в источниках данных драйвер Microsoft Text Driver
|
|||
25
fisher
14.05.20
✎
11:22
|
(22) К структурированным файлам, ессно. Если драйвер может интерпретировать текстовый файл как таблицу (понимает разделители строк и колонок), то никаких проблем. На java даже есть embedded БД, которая позволяет штатно подключать в качестве таблиц структурированные текстовые файлы.
|
|||
26
FlashPoint
14.05.20
✎
11:23
|
(0) Через табличный документ читай.
|
|||
27
такт
14.05.20
✎
11:26
|
||||
28
fisher
14.05.20
✎
11:32
|
Вспомнил, в чем еще удобство чтения через ADO - в автоматической типизации.
|
|||
29
fisher
14.05.20
✎
11:45
|
(27) Одно время было популярным направлением. А сейчас какие преимущества в сравнении с Прочитать()?
|
|||
30
Новиков
14.05.20
✎
11:50
|
(22) Указываешь в качестве строки подключения Microsoft Text Driver, либо любой, аналогичный. Но это не все. В каталог с текстовым файлом кладешь файл схемы, который описывает формат разделителя и типы, к которым нужно приводить значения между ними. Дальше подключаешься как хочешь, и пишешь запросы. В 1С создаешь ВИД, описываешь таблицу, согласно структуре файла, подключаешь ВИД - все. Имеешь типизированную таблицу, доступную в контексте 1С - СКД, Консоль - все что хочешь. Это очень удобно, когда нужно быстро какую-то аналитику провести. Аналогично можно подключить и Excel.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |