VBScript для AE - чтение XLS без Excel и запись красивого XML

1621406950707.png

Тут тест проходит?
 
Взял скрипт от уважаемого.
Лучше парсить XLS в XML через пайтоновский скрипт. Ну или написать CLI приложения на C# или C++. КОму как удобнее. . . .
Немного подредактировал и почистил. Главное отличие, переменная outputFolder не используется. XML- и Log-файлы пишутся сразу в папку с XLSX-файлом. XML с именем исходного XLSX.
Предполагается, что Python- и VB-скрипты лежат в "C:\Esko\bg_data_fastserver_v100\Scripts\WindowsScript", т.е. на сервере Automation Engine. И запускаются на нём же. Если менять положение скриптов, то этот путь в VB-скрипте надо поправить.
В Python-скрипте используются библиотеки: openpyxl - для чтения XLSX, xml.etree.ElementTree - для создания XML.
Выборка данных идёт по конкретным ячейкам, редактировать в Python-скрипте.
Python:
        data = {
            "Customer": sheet["B2"].value,
            "ProductName": sheet["C2"].value,
            "OrderID": sheet["B4"].value,
            "Comment": sheet["C4"].value,
            "Article": sheet["B6"].value,
            "Width": sheet["B8"].value,
            "PrintStep": sheet["B10"].value,
            "StreamsCount": sheet["B12"].value,
            "BaseArticle": sheet["B14"].value
        }

В настройках Scrip Runner первым параметром указывается имя Python-скрипта.

Screenshot 2025-03-25 175841.png
 

Вложения

Уже год прошел. Но всё же, добавлю комментарий от себя.

Удобнее пользоваться алиасами а не жесткими координатами поля таблицы в экселе
Т.е. в экселе, для поля ты задаёшь имя. Это имя уникально на странице. В пайтоне при парсинге экселя, ты ищешь поле не по адресу B2, а по имени "color_name".
Что это даёт наверное понятно?
Придёт кто-то и попросит перенести поля, добавить столбик... Придётся пайтон скрипт переписывать. С алиасами, это не потребуется в 90% случаев.
 
  • Спасибо
Реакции: romyk