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

18.10.11

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

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

Файлы

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

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

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

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

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

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Для работы  с 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С:Предприятие 7.7 1C77 Платные (руб)

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

6100 руб.

27.05.2022    12696    2    20    

39

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

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

5084 руб.

29.07.2021    27757    22    23    

22

Разработка внешних компонент Системный администратор Программист 1С:Предприятие 7.7 1С:Предприятие 8 Россия Платные (руб)

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

7320 руб.

19.04.2023    6912    1    0    

3

Разработка внешних компонент Программист 1С:Предприятие 7.7 Платные (руб)

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

5084 руб.

02.12.2021    7870    3    19    

5

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

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

1 стартмани

08.06.2020    11423    31    mdbruyfn    10    

9

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

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

1 стартмани

14.11.2019    23274    135    mdbruyfn    110    

19

Разработка внешних компонент Программист 1С:Предприятие 7.7 1С:Предприятие 8 Россия Абонемент ($m)

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

5 стартмани

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