Функції 1С. З Excel в 1С. Отримання списку листів (імен аркушів) з файлу Excel
Імпорт даних з Excel в 1С. Отримання списку листів (імен аркушів) з Excel (xls, xlsx)
Всі останні версії 1С: Підприємства мають можливість відкривати і використовувати com-об'єкти з вбудованої мови програмування 1С. Операційна система Windows і встановлені в ній програми пропонують багатий набір таких об'єктів, в тому числі інтерфейси для доступу до різних баз даних за допомогою технології ADO (ActiveX Data Objects)
Використання об'єктів ADO і їх інтерфейсів дозволяє легко робити завантаження даних з Excel в 1С. У цій статті ми покажемо функцію для 1С, яка зчитує імена всіх листів з книги Excel в 1С.
Навіщо потрібна функція читання списку листів з Excel в 1С. Справа в тому, що при роботі в 1С постійно потрібні дані, що надаються в файлах формату Excel, якісь звіти, прайси та інше, але сама 1С: Підприємство не містить вбудованих функцій по імпорту даних Excel.
Експорт даних, вивантаження в Excel за допомогою вбудованих функцій можлива - для цього використовуються методи об'єкта ТаблічнийДокумент.Запісать (). який дозволяють записати вміст документа в форматі робочої книги Microsoft Excel. Але ось зворотного імпорту, крім ручного копіювання стовпців і рядків через кліпборд - не передбачено.
Ця функція, що розглядається в цій статті, функція читання списку листів з книги Excel в 1С є "підготовчої" для наступної, універсальної функції імпорту даних з Excel в 1С. Ця функція імпорту буде описана на нашому сайті fast-soft.ru в наступній статті.
Я не знайшов в інтернеті "зрозумілої" і універсального прикладу функції імпорту даних з файлів Excel. Деякі приклади були, але були прив'язані до структури конкретного xls-файлу, з заздалегідь відомими іменами листів, а так само вимагали наявності встановленої копії Microsoft Excel.
Для своєї роботи такі приклади використовували com-об'єкт "Excel.Application", що в багатьох випадках просто незручно, так як ініціалізація такого об'єкта вимагає великих ресурсів комп'ютера, та й не завжди є можливість купити і встановити пакет Microsoft Office (в який входить Excel) на кожній машині, де це потрібно.
Ми підемо іншим шляхом. Для отримання даних їх файлів Excel (за допомогою ADO і драйверів OLE DB) не обов'язково мати на комп'ютері встановлений Microsoft Excel, так як один з драйверів OLE DB дозволяє інтерпретувати файл Excel (а саме, робочу книгу Excel (Workbook) - як типову базу даних і виробляти з неї різні операції.Таблицями в такий "базі даних" є листи робочої книги. У цій, як і в будь-який інший базі даних (БД), крім маніпуляції з самими даними, як такими, існує можливість отримати деяку інформацію про структуру самої БД. Інформацію про цей структурі об'єктів бази даних і зв'язків між ними часто прийнято називати "схемою бази даних"
За допомогою функцій отримання схеми БД у об'єкта "ADODB.Connection" ми зможемо отримати перелік, список листів (в термінах БД - таблиць) з файлу Excel.
Нижче я привожу код функції, яка отримує на вході повне ім'я файлу Excel, що містить шлях до файлу, і ім'я з розширенням файлу (* .xls, * .xlsx) і повертає об'єкт-масив 1С, який в якості своїх елементів містить рядки з іменами листів вихідного файлу. Якщо читання списку листів файлу не вдалося, то функція повертає значення "Не визначено"
Важливо: Драйвер, за допомогою якого ми отримуємо можливість роботи через OLE DB з файлами Excel повинен бути встановлений на комп'ютері. Якщо функція не працює, скачайте і встановіть пакет, що містить всі необхідні компоненти (MDAC і додаткові драйвера OLE DB) з цієї сторінки сайту Microsoft
Зсередини функції ФайлExcel_ПолучітьСпісокЛістов () викликається функція ФорматСтрокі (). Її текст можна подивитися на нашому сайті - ФорматСтрокі ()
З повагою, Дегтярьов Роман.
Як навчитися програмувати в 1С з нуля?
Як працювати програмістом 1С і отримувати до 150 000 рублів на місяць?
Запишіться на БЕЗКОШТОВНИЙ
"Програмування в 1С ДЛЯ НОВАЧКІВ"
Курс прийде на електронну пошту. Стань програмістом, виконуючи покрокові завдання.
Для участі потрібен лише комп'ютер та інтернет
Безкоштовний доступ на курс: