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

18.10.11

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

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

Файлы

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

Наименование Скачано Купить файл
Архив с файлами
.zip 16,33Kb
34 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

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

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

Пример:

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

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

Попытка

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

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

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

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

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

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

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

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

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

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

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

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

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

КонецЦикла;

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

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



Вступайте в нашу телеграмм-группу Инфостарт

См. также

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

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

2000 руб.

27.05.2022    10714    32    20    

38

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

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

3588 руб.

29.07.2021    25439    18    23    

19

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

3

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

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

1200 руб.

02.12.2021    6913    2    19    

4

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

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

1 стартмани

08.06.2020    10321    31    mdbruyfn    10    

9

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

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

1 стартмани

14.11.2019    21151    127    mdbruyfn    107    

19

Разработка внешних компонент Загрузка и выгрузка в Excel Программист 1С v7.7 1C77 Абонемент ($m)

Внешняя компонента 1С 7.7. для сохранения таблиц в формате Excel 2007.

1 стартмани

21.03.2019    30113    80    MadDAD    303    

17

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

Написанная Active-X компонента встраивается на форму обработки 1С (тестировалось на 1С 8.0, 8.1, 8.2, 8.3 не управляемые формы, 1С 7.7.). Компонента предназначена для моделирования игрового поля (вывод, движение спрайтов - фреймов, обработка коллизий, управление спрайтами-фреймами и т.д.) при разработки логики игры на встроенном языке 1С. Приложен пример обработки в которой реализована игра "Бита".

5 стартмани

04.01.2018    27479    2    protexprotex    34    

11
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Damian 912 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
Сообщение было скрыто модератором.
...
Для отправки сообщения требуется регистрация/авторизация