Класс для работы с XLS, CSV файлами

18.10.11

Разработка - Разработка внешних компонент

Класс для работы с XLS, CSV файлами - для "прозрачной работы" с файлами XLS/CSV -  использует MS Excel или Open Office

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

Наименование Файл Версия Размер
Архив с файлами
.zip 16,33Kb
34
.zip 16,33Kb 34 Скачать

Для работы  с XLS файлами использует сначала движок MS Excel, если Excel не установлен, пробует Open Office

Для работы с CSV файлами используется встроенная компонента 1с++ -  ИндексированнаяТаблица.

Пример:

лЭксель = СоздатьОбъект("классXLS");

Попытка
Если
лЭксель.Создать(ФайлЗагрузки, лТипФайла) = 0 Тогда
Возврат
0;
КонецЕсли;
Исключение
Сообщить("Ошибка открытия файла: " + СокрЛП(ФайлЗагрузки) + СимволТабуляции + ОписаниеОшибки(), "!");
Возврат
0;
КонецПопытки;

Попытка

лКолСтрок = лЭксель.КоличествоСтрок();

Для
сч=1 По лКолСтрок Цикл

лОбозначение = СокрЛП(лЭксель.Ячейка(, КолОбозначение, сч));

Состояние(СокрЛП(сч) + "/" + СокрЛП(лКолСтрок) + " - " + СокрЛП(Окр(сч/лКолСтрок *100, 0)) + "% загрузка данных: " + лОбозначение);

Если
ПустаяСтрока(лОбозначение) = 1 Тогда
Продолжить;
КонецЕсли;

ТзДанных.НоваяСтрока();
ТзДанных.Обозначение = лОбозначение;

Если
КолПроизводитель > 0 Тогда
лПроизводительСтр = СокрЛП(лЭксель.Ячейка(, КолПроизводитель, сч));
ТзДанных.ПроизводительСтр = лПроизводительСтр;
КонецЕсли;

Если
КолОстаток > 0 Тогда
лОстаток = Число(лЭксель.Ячейка(, КолОстаток, сч));
ТзДанных.Остаток = лОстаток;
КонецЕсли;

Если
КолРезерв > 0 Тогда
лРезерв = Число(лЭксель.Ячейка(, КолРезерв, сч));
ТзДанных.Резерв = лРезерв;
КонецЕсли;

Если
КолОтгружено > 0 Тогда
лОтгружено = Число(лЭксель.Ячейка(, КолОтгружено, сч));
ТзДанных.Отгружено = лОтгружено;
КонецЕсли;

Если
КолЗаказано > 0 Тогда
лЗаказано = Число(лЭксель.Ячейка(, КолЗаказано, сч));
ТзДанных.Заказано = лЗаказано;
КонецЕсли;

Если
КолЦена > 0 Тогда
лЦена = Число(лЭксель.Ячейка(, КолЦена, сч));
ТзДанных.Цена = лЦена;
КонецЕсли;

Если
КолНаименование > 0 Тогда
лНаименование = СокрЛП(лЭксель.Ячейка(, КолНаименование, сч));
ТзДанных.Наименование = лНаименование;
КонецЕсли;

КонецЦикла;

лЭксель.Закрыть();

Исключение
Сообщить("Ошибка чтения файла: " + СокрЛП(ФайлЗагрузки) + СимволТабуляции + ОписаниеОшибки(), "!");
Возврат
0;
КонецПопытки;



См. также

HTTP сервер 1С 7.7 + HTTP асинхронный клиент: внешние компоненты для 1С 7.7

Разработка внешних компонент WEB-интеграция Платформа 1С v7.7 Конфигурации 1cv7 Платные (руб)

Компонента HttpSrv7 позволяет создавать веб-сервисы в среде 1С 7.7 и даже, используя файлы HTML, несложные веб-сайты. С помощью нее можно обеспечить доступ к данным 1С 7.7 из браузера. Дополнительно используя компоненту HTTP_Async или синхронный клиент HTTP для 1С 7.7 (публикация № 1152364) можно наладить обмен данными между удаленными информационными базами. С помощью компоненты HTTP_Async можно параллельно посылать много запросов к сайтам, веб-сервисам (в т.ч. к HttpSrv7), а затем обрабатывать данные по мере их поступления.

2000 руб.

27.05.2022    7813    19    13    

31

Загрузка банковской выписки для 1С 7.7 любой конфигурации

Банковские операции Загрузка и выгрузка в Excel Платформа 1С v7.7 Конфигурации 1cv7 Россия Бухгалтерский учет Платные (руб)

Решение предоставляет комплексную загрузку банковской выписки из CSV, XLS, TXT файла в 1С 7.7 любой конфигурации. Позволяет создавать документы выбранного вида, например "Строка выписки банка (приход/расход)", или многострочный табличный документ, например Выписка, для каждой операции из загружаемого файла банковской выписки. Загружает реквизиты документа, а также создаёт контрагентов и другие необходимые элементы справочников.

3588 руб.

29.07.2021    20604    13    22    

14

Загрузка документов в 1С (7.7) из табличных файлов Excel,OpenOffice,1C,DBF,TXT (обработка)

Файловый обмен (TXT, XML, DBF), FTP Загрузка и выгрузка в Excel Платформа 1С v7.7 Конфигурации 1cv7 Платные (руб)

Обработка решает поставленную задачу по вводу документов, а кроме того обладает важной функцией: настраивается на ассортимент конкретного поставщика, запоминая соответствие между его номенклатурой и «нашей». Т.е. фактически – является самообучающейся системой ввода накладных. У разных поставщиков могут быть накладные различного типа, с разным количеством полей, поэтому для каждого из них может быть сохранена своя собственная настройка диалоговой формы так, что любая поступающая накладная может быть обработана. По отношению к программе "1С:Предприятие 7.7" данное решение является внешними файлами. Для использования данного продукта не требуется вносить изменения в алгоритм существующих программ или используемых конфигураций.

2400 руб.

10.12.2009    76468    58    93    

68

Компонента ExchangeStruc (Структура Обмена). Прямой обмен данными между потоками, сессиями и окнами.

Разработка внешних компонент Платформа 1С v7.7 Платформа 1С v8.3 Платформа 1C v8.2 Платформа 1С v8.1 Россия Платные (руб)

Аддон "Структура Обмена" (ExchangeStruc) - это компонента, которая обеспечивает доступ к разделяемым процессом структурам, аналогичным структурам 1С. Обеспечивает прозрачную передачу данных примитивных типов, в том числе Двоичных данных, в режиме Реального времени между разными контекстами (формами) или потоками одного процесса. В перспективе функционал будет расширен для обмена между процессами, даже разных версий платформ. Совместим с версиями Windows рабочих станций и серверов, с платформами 1С разных версий и релизов в режиме Native начиная с 8.2, и в режиме COM начиная с версий 7.7. По скорости чтения и записи лишь немногим уступает стандартной структуре 1С. НОВОЕ: Добавлен функционал регистрации компоненты COM в качестве OLE Auto (COMОбъект) для поддержки её работы в серверах старых версий 1С: 8.0 и 8.1, где работа с компонентами исключена. Теперь можно коммуникацию с Фоновыми заданиями на этих версиях проводить.

7200 руб.

19.04.2023    4801    1    0    

3

Выбор из большого списка (для 1С 7.7)

Разработка внешних компонент Платформа 1С v7.7 Платные (руб)

Компонента для выбора значения из больших списков значений.

1200 руб.

02.12.2021    5778    2    19    

4

Криптография: внешняя компонента для 1С 7.7

Разработка внешних компонент Защита ПО и шифрование Платформа 1С v7.7 Абонемент ($m)

Цифровые подписи, шифрование, просмотр сертификатов ключей ЭЦП, работа с различными криптопровайдерами (в т.ч. КриптоПРО ГОСТ 2012) в 1С 7.7.

1 стартмани

08.06.2020    9053    27    mdbruyfn    10    

9

Клиент HTTP(S): внешняя компонента для 1С 7.7

Разработка внешних компонент WEB-интеграция Платформа 1С v7.7 Абонемент ($m)

Компонента позволяет использовать различные веб-сервисы интернет-ресурсов, например работать с онлайн-кассой через API, предоставленное ее разработчиком. Тестировалась на платформе 1С релиза 7.70.027.

1 стартмани

14.11.2019    18144    88    mdbruyfn    82    

15

Компонента для 1С, принимающая вес с железнодорожных, автомобильных, крановых весов

Разработка внешних компонент Платформа 1С v7.7 Платформа 1С v8.3 Транспорт, автопарки, такси Россия Платные (руб)

Программа "Компонента приёма веса для 1С, версия 3.0" позволяет принимать и заносить вес с весов непосредственно в программу "1С" - то есть, прием веса осуществляется целиком и полностью из программы "1С".

26400 руб.

09.04.2019    16063    2    8    

5
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Damian 909 19.10.11 01:17 Сейчас в теме
ADOBD + грамотно составленные запросы к таблицам дают больше даже без наличия MS Excel или OpenOffice - это для случая файлов *.xls. C файлами *.csv, возможно, это вариант, но упираемся в обязательное наличие внешней компоненты.
2. пользователь 19.10.11 06:43
Сообщение было скрыто модератором.
...
3. stepman3 7 19.10.11 08:40 Сейчас в теме
Это сделано как класс 1с++, так что наличие компоненты 1cpp.dll обязательно.
Про ADOBD - ну так получилось, что я пошел вначале таким путем. Возможны варианты ;-)
4. Михаська 12 19.10.11 09:12 Сейчас в теме
класс полноценный? умеет с макросами работать например? по моему мнению вполне удобно и доступно работать с экселем посредством OLE..
5. Михаська 12 19.10.11 09:17 Сейчас в теме
6. stepman3 7 19.10.11 09:38 Сейчас в теме
Нет. с макросами не умеет.
Создавал класс только для "записать/считать" данные, не заморачиваясь стоит ли MS Office или Open Office (переходим на лицензионное и/или фриварное ПО), и для ускорения написания обработок для работы с XLS файлами.
7. Amel2010 43 20.10.11 10:28 Сейчас в теме
а есть еще такая замечательная компонента как Йоксель...
Кроме чтения/записи Эксель-файлов много чего умеет.
ИМХО
8. Санек_Днепр 12.06.12 15:12 Сейчас в теме
Надо бы в архивчик и 1cpp закинуть!!!
Для большей универсальности...а то теперь Гуглить надо...
А так огромное спасибо пригодилось!!!
9. пользователь 27.11.12 12:41
Сообщение было скрыто модератором.
...
Оставьте свое сообщение