gifts2017

Быстро прочесть из mxl/xls в таблицу значений и обработать её...

Опубликовал Яков Коган (Yashazz) в раздел Программирование - Инструментарий

Открываем из файла или вставляем из буфера табличный документ, прописываем считывание для каждого нужного поля, получаем таблицу значений. Сохраняем её или обрабатываем произвольным алгоритмом.
UPD: в отдельную форму можно складировать полезные функции и процедуры, нужные в коде обработки.

Позволяет прочитать данные из таблицы, распознать и сопоставить их с данными базы по произвольным правилам, сохранить таблицу значений во временный файл, выполнить над таблицей значений произвольный алгоритм. Считывание ведётся из табличного документа, открытого или скопированного в соответствующую интерфейсную таблицу обработки, считываются тексты или расшифровки ячеек. Копировать, в принципе, можно и из Excel.

Применимо только для относительно простых таблиц (чтение из прямоугольных областей). Задействованы только средства 1С.

Написал сегодня утром для себя, одну частную задачку решал. А потом e.kogan заявила, что это можно и выложить, поэтому выкладываю. Простой, быстрый, незатейливый способ, эдакий подручный инструмент, но никак не полноценный блок. Картинки выложу чуть погодя.

Можно использовать при серверном вызове, нужные процедуры заэкспортированы и под сервер заточены.

Инструмент НЕ для пользователя, а для программиста. В нём надо писать код! Есть краткая справка, но почти нет защиты от дурака.

Прошу не плюсить, т.к. подобного тут и без меня выложено, и гораздо более навороченного, но, надеюсь, кому-нибудь и этот пригодится.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
FromMXLtoValueTable
.epf 32,84Kb
21.02.12
367
.epf 32,84Kb 367 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Влад Кацманевич (cool.clo) 29.11.10 18:05
:D Прошу не плюсить
Альтруист однако!
2. Сергей Ожерельев (Поручик) 29.11.10 20:16
3. Александр Астафьев (alexandr_astafiev) 04.12.10 11:31
а как файл xls открывать непонятно однако
4. Яков Коган (Yashazz) 11.12.10 12:02
(3) А просто открыть файл в Excel'e и оттуда скопировать нужный фрагмент и вставить в табличный документ на первой закладке обработки. Иначе - никак, это не читалка из экселя.
5. Alex A (daddy-don) 12.12.10 14:17
(4) ну это вы хватанули :)
А если типы данных не совпадут, то что у меня в ТЗ будет - вместо число - строка? Или вместо Дата - число?
Т.е. надо подстраивать код чтения с ТД в ТЗ - каждый раз под каждый лист Ексель?
А если данные кусками, и что "не выделилось"? Или выделилось столько, что не влезет в ТД от 1С (там, по-моему, отнюдь не 65536 строк, а не 10 000 ли можно всего вбить)?
А что помешало реализовать хотя бы выбор колонок/типов данных в них из исходного файла Ексель, раз уж надо быстро прочесть в ТЗ - если листы с разными данными, где же тут быстрота??
6. Яков Коган (Yashazz) 12.12.10 17:13
(5) Что будет, то и будет. Считывается из ячейки в любом случае текст, т.е. строка. И да, код надо будет подстроить. И куски самому компоновать, ага.
Ещё раз: это НЕ читалка из экселя, их тут и так навалом. Это подручный инструмент для mxl, который иногда применим для простых xls.
7. Mikhail (personazh) 07.01.11 00:40
Спасибо, очень пригодилась.
Пришлось, правда, немного "доработать напильником" под свои нужды.
Очень удивился, получив из таблицы в 3500 строк, только 400 строк в ТЗ :)
Есть крайне неприятная "очепятка" в коде- на небольших таблицах этого не видно, но в результате данные ТД могут выгрузиться не полностью.
У тебя вместо размеров ТД (ШиринаТаблицы,ВысотаТаблицы) везде используются размеры ЭУ ПолеТабличногоДокумента (ширина, высота).
Исправь пожалуйста.
8. Яков Коган (Yashazz) 07.01.11 15:12
(7) Упс, это я не учёл. Спасибо, перезалил исправленное.
9. Sergey Akhmadeev (SergBA) 24.10.12 13:30
10. Сергей Шепелев (redgoll) 22.02.13 08:33
Спасибо. Возможно, мне это пригодится для сверки остатков по УТ И БП.
11. V. L. (Vladal) 14.06.13 17:31
Чем эта обработка лучше обработки с ИТС ЗагрузкаДанныхИзТабличногоДокумента?
12. Олег Хугаев (Kov495) 05.10.15 11:22
А что за чтение файла многострадальное?
Нельзя было через Построитель прочитать?
Зря качал.
13. Яков Коган (Yashazz) 05.10.15 21:06
(11) Ну хотя бы тем, что она появилась на пару-тройку лет раньше. Остальное не знаю, не сравнивал.
(12) Если были вопросы или сомнения, можно было перечитать внимательно описание или сперва спросить меня.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа