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

18.10.11

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Архив с файлами
.zip 16,33Kb
34
34 Скачать (1 SM) Купить за 1 850 руб.

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

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

Пример:

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

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

Попытка

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

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

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

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

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

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

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

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

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

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

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

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

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

КонецЦикла;

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

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



См. также

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

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

3588 руб.

29.07.2021    24069    16    22    

17

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

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

2000 руб.

27.05.2022    9431    24    17    

35

Разработка внешних компонент Системный администратор Программист Платформа 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    5445    1    0    

3

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

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

1200 руб.

02.12.2021    6429    2    19    

4

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

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

1 стартмани

08.06.2020    9666    28    mdbruyfn    10    

9

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

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

1 стартмани

14.11.2019    19914    115    mdbruyfn    105    

18

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

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

26400 руб.

09.04.2019    16665    2    8    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Damian 911 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 44 20.10.11 10:28 Сейчас в теме
а есть еще такая замечательная компонента как Йоксель...
Кроме чтения/записи Эксель-файлов много чего умеет.
ИМХО
8. Санек_Днепр 12.06.12 15:12 Сейчас в теме
Надо бы в архивчик и 1cpp закинуть!!!
Для большей универсальности...а то теперь Гуглить надо...
А так огромное спасибо пригодилось!!!
9. пользователь 27.11.12 12:41
Сообщение было скрыто модератором.
...
Оставьте свое сообщение