Какие способы существуют для загрузки excel

Статьи и публикации

Загрузка данных из табличных документов, созданных в редакторе Microsoft Excel – довольно часто встречающаяся задача в работе любого программиста 1С. Программа эта широко распространена, любима пользователями и часто используется для хранения и обработки различного рода информации, будь то прайс-лист или данные по продажам за период.

Существует несколько различных методов работы с файлами Excel при загрузке данных в 1С, в том числе:

1. загрузка с помощью свойства Cells;

2. загрузка с помощью метода Range и последующим обращением к данным через метод GetValue();

3. загрузка с помощью метода Range и последующим обращением к данным через свойство Value;

4. загрузка с помощью технологии ADO [2] и использованием компоненты GameWithFire [3].

Рассмотрим вышеперечисленные методы подробнее.

1. Загрузка данных с помощью свойства Cells

Этот метод используется в обработке «ЗагрузкаДанныхИзТабличногоДокумента.epf», которая присутствует на диске ИТС, и основан он на обращении к объекту Excel.Application через технологию COM с последующим последовательным чтением данных в ячейках обращением к свойству Cells.

Значение = ExcelЛист.Cells(Row,Column).Text;

Собственно, здесь все достаточно просто:

а) подключаемся к Excel

Excel = Новый COMОбъект("Excel.Application");

Сообщить("Ошибка. Возможно, неверно указан номер листа книги Excel.");

б) получаем диапазон данных на листе:

в) последовательно считываем данные из файла:

Для Row = 1 По RowCount-1 Цикл

Для Column = 0 По ColumnCount-1 Цикл

// здесь код, который использует данное значение

Несомненно, такой способ гарантирует получение всех данных, содержащихся на листе Excel, однако он имеет весьма существенный недостаток – большую длительность работы при загрузке файлов больших объемов.

2. Загрузка данных с помощью метода Range и последующим обращением к данным через метод GetValue()

Этот метод так же основан на возможностях объекта Excel.Application, но, в отличие от загрузки с использованием свойства Cells, позволяет получить сразу все значения в виде двумерного массива. Работает следующим образом:

а) подключаемся к Excel (аналогично методу 1);

б) определяем диапазон используемых ячеек (аналогично методу 1)

в) считываем данные с помощью метода Range(начальнаяЯчейка, конечнаяЯчейка). Здесь начальная и конечная ячейки – это элементы свойства Cells, о котором шла речь выше.

Диапазон = ExcelЛист.Range(Я.item(1,1), Я.item(RowCount,ColumnCount)).Value;

В результате, в переменной Диапазон мы получим значение типа COMSafeArray, который представляет собой объектную оболочку над многомерным массивом SAFEARRAY. Иначе говоря, мы получаем массив, который, как известно, является областью памяти. А с областью в оперативной памяти работа всегда быстрее.

При этом надо учитывать, что массив этот многомерный. Для нашего случая это будет двумерный массив.

г) последовательно получаем значения из массива с помощью метода GetValue(столбец, строка)

Для Row = 1 По RowCount-1 Цикл

Для Column = 0 По ColumnCount-1 Цикл

Значение = Диапазон.getValue(Column+1, Row);

// здесь код, который использует данное значение

Данный метод работает значительно быстрее, чем чтение с помощью свойства Cells.

3. Загрузка данных с помощью метода Range и последующим обращением к данным через свойство Value

Этот метод отличается от предыдущего только тем, что вместо работы с объектом типа COMSafeArray мы сразу получаем набор значений в виде стандартного массива 1С (тип Массив).

Также, в приведенном листинге вместо метода Range используется свойство UsedRange, которое, по сути, идентично значению, возвращаемому методом Range для всей используемой области листа (это свойство не годится, если нужно прочитать только какую-то часть ячеек, в отличие от метода Range).

а) подключаемся к Excel (как и в предыдущих случаях)

б) считываем данные используя свойство UsedRange и метод Выгрузить()

В результате, получаем двумерный массив типа Массив

в) последовательно получаем значения из массива

Для Row = 1 По RowCount-1 Цикл

Для Column = 0 По ColumnCount-1 Цикл

Значение = Данные[Column], [Row];

// здесь код, который использует данное значение

Еще одним преимуществом данного метода является то, что каждый элемент массива Данные представляет собой массив, содержащий значение одной колонки считанного файла. Тем самым, мы можем сразу получить все возможные значения определенной колонки в виде массива, просто обратившись к соответствующему элементу переменной Данные.

4. Загрузка данных с помощью технологии ADO и использованием компоненты GameWithFire

Данный способ использует технологию ADO [2], которая реализуется с помощью библиотеки ADOdb [4] и позволяет получать доступ к любым СУБД, реализующим технологию ODBC. Собственно, Excel попадает в данный список и, следовательно, мы можем получить данные, используя указанную технологию.

Также, для указанного метода используется компонента с оригинальным названием GameWithFire, которая перекладывает результат запроса через ADO в привычную таблицу значений.

Ниже приведен листинг части кода, который демонстрирует данную возможность. Пример во многом использует материал, описанный в источнике [1].

Запрос = "SEL ECT * FR OM [Лист1$]";

ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Компонента GameWithFire не подключена!");

ADOUtils = Новый ("AddIn.ADOUtils");

Connection = Новый COMОбъект("ADODB.Connection");

СтрокаПодключения="Provider=Microsoft.Jet.OLEDB.4.0; Data Source = "+ИмяФайла;

Command =Новый COMОбъект("ADODB.Command");

//Создание объекта набора записей

RecordSet =Новый COMОбъект("ADODB.RecordSet");

//Указание активного соединения

//передает текст запроса

//определение типа команды

//Выполнение и получение набора данных

// После того, как набор записей уже не нужен, его нужно закрыть

В результате, получаем таблицу значений ТЗ, которую можем обойти любым известным образом.

В заключение, мы хотели бы привести таблицу сравнения скорости работы вышеописанных методов и рекомендации для использования.

Замеры производились на файле Excel с числом строк 16 000 и числом колонок 20. Таким образом, общее число ячеек в области составило 320 000. Значения в таблице говорят сами за себя.

Таблица 1. Время загрузки данных из Excel в 1С при использовании различных методов

С помощью Cells

С помощью Range() и GetValue()

С помощью Range() и свойство Value

Рекомендации по использованию:

1. Чтение с помощью Cells – когда нужно прочитать значения конкретных ячеек или небольших, несмежных областей.

2. Чтение с помощью Range – всегда, кроме случаев с очень большими файлами (сотни тысяч строк), так как в этом случае не нужно ничего, кроме Excel.

3. В случае, когда файлы очень большие, либо требуется особая выборка (связано это с тем, что технология ADO позволяет выполнять запрос на языке SQL к СУБД, а это весьма расширяет круг задач), так как требуется дополнительная компонента, да и строка соединения будет зависеть от версии используемого ПО.

При разработке программного продукта «RG-Soft:Универсальный загрузчик из MS Excel»[С.В.1] мы использовали технологию ADO.

Какие способы существуют для загрузки excel

Загрузка ассортимента — не самый простой процесс, но без него невозможно начать продажи. Какие способы разместить карточки товара на платформе существуют, чем они отличаются и какой выбрать? Вместе со специалистами «AliExpress Россия» и компанией PalX рассказываем о способах добавления товаров на платформу, о других писали тут.

Подробные инструкции по загрузке доступны в видеоформате: добавление с помощью YML, через Excel.

С помощью Excel

Для чего? Товаров много, а заполнять вручную не хочется

Вы можете загрузить файл на платформу с помощью Excel. Для каждой категории закреплен список атрибутов и их значений, поэтому шаблоны файла для загрузки будут отличаться.

Этапы добавления товаров через Excel

Необходимо выбрать категории из дерева AliExpress. Для каждой из них система сгенерирует свой шаблон файла.

После этого заполните шаблоны. Важно помнить, что для большинства атрибутов можно выбирать значения только из выпадающего списка, но есть и такие, куда можно ввести свое значение.

Загрузите заполненный шаблон на платформу. Система сообщит вам об ошибках, если они появятся.

Товары в Excel можно загружать массово — подробности можно прочесть здесь. Таким способом удобно загружать до 5000 единиц товара. Если у вас ассортимент шире, рекомендуем использовать YML/XML-файлы — инструменты, которыми можно автоматически редактировать и обновлять товары. Однако если вы добавили товары не через YML, то автоматическое обновление остатков работать не будет.

Подсказки при загрузке информации о товарах в формате Excel:
  • изображения нужно заранее загрузить в Медиацентр AliExpress или на свой сайт. Обязательно убедитесь в том, что выбранный сервис будет работать стабильно, так как от этого зависит корректное отображение картинок в карточках товаров.;
  • при заполнении описания можно использовать HTML- разметку;
  • если вы загружаете товар с модификациями, используйте одинаковую модель, а штрихкод или артикул делайте уникальными. Таким образом, товары с одинаковой моделью, но разными штрих-кодами, цветами и размерами будут в одной карточке товара.

После загрузки заполненного шаблона система сообщит статус операции. Если система не добавила товары, вы можете скачать файл с ошибками, внести изменения и попробовать загрузку снова.

Не пугайтесь, если карточки будут опубликованы не сразу: иногда проверка карточек системой может занять от одного до трех дней. После публикации проверьте отображение информации в карточках.

С помощью XML/ YML

Для чего? Для быстрой автоматической загрузки большого объема данных (можно загрузить файл на платформу с помощью AliExpress Assistant).

YML — это вариация языка разметки XML, созданная компанией «Яндекс». С его помощью можно удобно формировать и изменять каталог товаров.

Большинство систем управления интернет-магазином умеют экспортировать данные в этот формат. Обычно информация в разметке YML размещается на сервере интернет-магазина, а CRM автоматически ее обновляет. Поэтому системам, которые умеют считывать этот формат, достаточно знать URL, по которому хранятся данные, чтобы обновлять их с указанной частотой.

Для каждой категории закреплен список атрибутов и их значений, поэтому файлы будут отличаться.

Как загрузить информацию с помощью YML/XML

Плюс этого способа — возможность загружать товары на том этапе, когда не все категории известны, и добавлять данные, когда карточки уже загружены. Это более сложный способ, чем предыдущие, но и более функциональный, поскольку позволяет автоматизировать обновление цен, информации о наличии товаров и др. Загрузка с помощью YML/XML удобна для работы с товаром на платформе, однако, если вы не знаете, как его использовать, мы рекомендуем обратиться к сервисным партнерам.

Важные нюансы загрузки с помощью YML/XML:

все бренды должны быть добавлены заранее в панели управления ;

при первой загрузке лучше потренироваться на небольшом количестве позиций;

обязательно добавьте информацию о цене, стоке, штрих-код (id) и артикул (group_id);

указывая дробные цифры, помните, что в качестве разделителя на платформе используется точка;

укажите вес и размеры товара в упаковке;

избегайте использования спецсимволов в названии товаров («&» и др.);

не делайте название товара более 128 символов;

помните, что в описании товара поддерживается HTML-разметка. Рекомендуем использовать тег CDATA (<![CDATA[ xxx ]]>) для экранирования спецсимволов;

дождитесь, когда после загрузки файла система сообщит статус проверки и предложит перейти к следующим настройкам;

внимательно проставьте соответствия значений категорий и характеристик товара;

при необходимости дополните YML-файл атрибутами, используя тег <param name=“<название_атрибута>”><значение></param>.

После успешной загрузки необходимо опубликовать товары для отображения в магазине. Для этого перейдите в «Управление товаром», выберите вкладку «Черновики». Отметьте флажком все товары для публикации и нажмите «Действия» → «Групповая загрузка на AE».

Как загрузить товары вручную или с помощью API, рассказывали в этой статье.

Как загрузить товары на платформу: вручную или с помощью API. Часть 2.

Загрузка ассортимента — не самый простой процесс, но без него невозможно начать продажи. Какие способы разместить карточки товара на платформе существуют, чем они отличаются и какой выбрать? Вместе со специалистами «AliExpress Россия» и компанией PalX рассказываем о способах добавления товаров на платформу

Код Икс Пи ☆ Центр автоматизации, сопровождения и поддержки

У нас можно приобрести электронную подпись под любые задачи — сдача отчетности, электронные торги, работа на гос.порталах, подберем оптимальный вариант подписи по вашему запросу за 1 минуту. Смотреть полный прайс на электронные подписи.

1C ⋅ Купить ⋅ Настроить ⋅ Доработать

Наша компания является официальным партнером фирмы "1С". У нас вы можете приобрести программу 1С и подписку на обновления.

1С:Предприятие

  • Любые конфигурации и обновления
  • Бухгалтерский учет
  • Автоматизация магазина
  • Оптовые продажи
  • Тонкая настройка программы под ваш учет
  • Разработка новых модулей, расширение функционала под вас
  • Настройка оборудования: кассы, ТСД, сканеры штрих-кодов

Подробней о том что у нас есть смотри в разделе Услуги и Прайс.

Сервер в облаке

Моментальная настройка сервер + 1С

  • Доступность 24\7
  • Нет необходимости держать собственного системного администратора (экономия покроет расходы на ваш сервер)
  • Быстрая настройка и установка 1С на сервер, через 2-3 дня у вас уже будет полностью рабочая система
  • Поддержка от нас на постоянной основе
  • Легкий доступ к серверу из любой точки (из дома, в командировке)

От 5000 руб. / месяц

Оператор фискальных данных

Контур.ОФД
Удобный и надежный оператор фискальных данных

  • Передаем документы с онлайн-кассы в ФНС и в «Честный ЗНАК»
  • Статистика продаж по каждой торговой точке и каждой кассе
  • Интеграция с любой учетной системой

Сдача бухгалтерской отчетности онлайн

Контур.Экстерн

  • Отчетность без ошибок
  • Отслеживайте сроки отчетов
  • Работайте с отчетами прямо из 1С

Рассылки и сервисные сообщения

SMS и e-mail рассылки из 1С

Хотите чтобы клиенты во время узнавали об акциях, скидках? Клиенты не возвращаются? Настройте отправку SMS прямо из 1С!

Наша компания сможет в короткие сроки настроить отправку SMS Вашим клиентам напрямую из 1С. Примеры событий которые можно автоматизировать:

5 способов загрузки из Excel в 1С

  • Способы.png

В конфигурации 1 обработка и 1 внешний источник данных, который нужен для реализации загрузки одного из вариантов.

Модуль формы разбит на области, для удобного копирования в свои обработки или изучения способа загрузки.

Работа с Excel через OLE на сервере

Работа с Excel используя внешний источник данных

Работа с Excel через OLE на клиенте

Загрузка в табличный документ

Работа с Excel через построитель

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

Специальные предложения

Electronic Software Distribution

Маркировка 488-ФЗ

Интеграция 1С с системой Меркурий

Алкогольная декларация

Готовые переносы данных

54-ФЗ

Управление проектом на Инфостарте

Траектория обучения 1С-разработчика

  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти

Просмотры 23743

Загрузки 29

Рейтинг 50

Создание 29.03.21 09:30

Обновление 29.03.21 09:30

№ Публикации 1411881

Конфигурация Конфигурации 1cv8

Операционная система Не имеет значения

Вид учета Не имеет значения

Доступ к файлу Абонемент ($m)

Код открыт Да

См. также

Загрузка данных из Excel (из табличного документа) в часто используемые объекты: в справочники, документы, их табличные части, в планы видов расчетов, регистры расчета, регистры сведений Промо

Это перепиленная вдоль и поперек версия всем известной обработки "Загрузка из табличного документа" с диска ИТС. Добавлена возможность грузить в документы, виды расчетов, регистры расчета.

9 стартмани

25.06.2014 11060 23 Дмитрий74Чел 4

Загрузка документов "Реализация товаров и услуг" и "Отчет производства за смену" из Excel (*.xls, *.xlsx) во Фреш (Fresh — модель сервиса или облако)

Обработка предназначена прежде всего как пример для разработки внешних доп. обработок во Фреш в помощь программистам.

2 стартмани

24.09.2021 2087 11 Dem0 0

Загрузка данных о продажах ОЗОН из API Ozon и Отчетов в формате *.xlsx в документ "Отчет комиссионера"

Обработки предназначены для следующих конфигураций: Бухгалтерия предприятия, редакция 3.0; Управление нашей фирмой, редакция 1.6; Управление торговлей, редакция 10.3; Управление торговлей, редакция 11; Комплексная автоматизация 2; ERP Управление предприятием 2

3 стартмани

26.11.2020 9490 223 LamerSoft 0

Парсинг Excel-файла

Шаблон внешней обработки для парсинга Excel без использования COM-объектов, с учетом клиент-серверного взаимодействия, на толстом, тонком и веб-клиенте. С учетом требований безопасности и отображением длительных операций.

1 стартмани

15.09.2020 9863 31 LamerSoft 0

Прыг-Скок. или из MS EXCEL в 1С (8.2) (открытый код) Промо

Универсальная загрузка данных из Microsoft Office Excel. Автоматическая загрузка из любых по форме документов с очень удобным редактором. Почти готовый шаблон для любой конфигурации. Не требует регистрации-бесплатно.

1 стартмани

16.09.2015 75517 366 Tatitutu 50

Заготовка обработки (внешняя печатная форма) заполнения Excel документа из 1С

Умеет заполнять как отдельные ячейки, так и таблицы в рамках листов Excel. Удобно при разработке различных “дашбордов” (с графиками, диаграммами), отчетов финансистов (где много формул), заполнения форм документов организации. Эксель шаблон может сделать пользователь (с нужным ему оформлением, формулами и т.д.) и впоследствии самостоятельно этот шаблон менять. Программисту нужно только настроить выдачу данных для заполнения шаблона. Может подключаться как внешняя печатная форма (для обычных и управляемых форм).

2 стартмани

29.07.2020 7009 23 wonderboy 0

Загрузка прайс-листов в БП 3.0, УНФ 1.6, Розница 2.3, УТ 11, КА 2 и ERP

Внешняя обработка для загрузки прайс-листов Excel (и не только) в конфигурации: Бухгалтерия предприятия, редакция 3.0; Управление нашей фирмой, редакция 1.6; Розница, редакция 2.3; Управление торговлей, редакция 11; Комплексная автоматизация 2; ERP Управление предприятием 2 без использования COM-объектов (установленного Excel), для толстого, тонкого и веб-клиента.

5 стартмани

16.04.2020 15082 178 LamerSoft 15

Загрузка данных о продажах WildBerries из API Статистики и Отчетов в формате *.xlsx в документ "Отчет комиссионера"

Обработки предназначены для следующих конфигураций: Бухгалтерия предприятия, редакция 3.0; Управление нашей фирмой, редакция 1.6; Управление торговлей, редакция 10.3; Управление торговлей, редакция 11; Комплексная автоматизация 2; ERP Управление предприятием 2

3 стартмани

11.12.2019 22797 381 LamerSoft 1

Выгрузка и загрузка данных из файла Excel с поиском по любым полям (есть поиск по ссылке, всего три итерации поиска. Управляемые формы или "Такси") Промо

Обработка позволяет загружать данные с поиском по ссылке как для загружаемого объекта, так и его свойств. Загружает справочники, документы, планы видов характеристик. Будет полезна как замена использования конвертации данных для задач переноса, а также как классическая загрузка из табличного документа (Excel). Поиск объекта при загрузке выполняется до трех раз с разными полями поиска (поля поиска настраиваются). Также реализована выгрузка в Excel по ссылкам. У обработки удобный интерфейс, в котором разберется даже начинающий пользователь. Загрузка накладных из файлов xls реализована с интеллектуальным поиском колонок с данными. В интеллектуальном поиске поддерживаются все основные типовые печатные формы.

5 стартмани

16.10.2015 69815 526 primat 35

Простой способ загрузить файл Excel на тонком клиенте.

Самый простой способ загрузить файл Excel на тонком клиенте — это скопировать лист Excel в "табличный документ" на форме обработки и обрабатывать уже поля "табличного документа".

1 стартмани

30.10.2019 12430 5 John_d 16

Загрузка из Excel (без использования com-объектов, без установленного Excel)

Обработка не использует com-объект для чтения из файла, не нужен установленный Excel.

1 стартмани

22.03.2019 27894 261 Смешной 1С 28

Конфигурация "Обмен данными Excel"

Что будет, если скрестить Конвертацию 2.0, Модуль загрузки преобразования в значения БД от конвертации 3.0 и Excel шаблоны? Правильно, получится отличная подсистема "Обмен данными Excel", которую можно встраивать в существующие конфигурации и получить универсальный механизм по загрузке данных из Excel и вводу начальных данных. Данная подсистема позволит заменить множество различных обработок по загрузкам из Excel. Хочу отметить, что все интеграции через веб сервисы 1С по загрузкам soap пакетов (документов xml) можно адаптировать и универсально загружать через данную подсистему, правда, это потребует двух доработок конфигурации, но это возможно, архитектурное решение и идея включены в подсистему "Обмен данными Excel" и хочу Вам сообщить, что уже реализованы и доступны в новом обновлении 1.1.1.1.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *