Makro do Excela lub inny skrypt do edytowania XML bez zmiany struktury
Zadanie:
Jest plik XML (eksport katalogu produktów z witryny).
Należy wdrożyć rozwiązanie, które pozwoli na masowe aktualizowanie danych w tym XML (ceny i statusy dostępności produktów) bez naruszania jego struktury.
Co należy wdrożyć:
Skrypt / makro / program, który:
otwiera XML;
znajduje potrzebne produkty według artykułu lub innego wskaźnika (analog VLOOKUP);
aktualizuje wartości docelowe (na przykład cenę lub dostępność) zgodnie z plikiem Excel;
zapisuje wynik w tym samym formacie, nie łamiąc struktury XML.
Rozwiązanie ma być proste w użyciu (na przykład uruchomienie makra z Excela lub uruchomienie skryptu Python podwójnym kliknięciem (.exe)).
Na wyjściu otrzymujemy gotowy aktualny plik XML, który można umieścić na hostingu i udostępniać za pomocą linku.
Preferowane:
Wdrożenie w VBA (Excel), ale można również zaproponować rozwiązanie w Pythonie lub innym języku, jeśli jest to bardziej niezawodne / prostsze i wygodniejsze.
Krótka instrukcja użytkowania.
Format oddania pracy:
Gotowy plik roboczy (Excel z makrem lub skrypt).
Przykład zaktualizowanego XML.
Instrukcja (jak aktualizować dane).
Zadanie:
Jest plik XML (eksport katalogu produktów z witryny, z węzłami <offer>).
Należy wdrożyć rozwiązanie, które umożliwi masową edycję danych w tym XML (ceny, statusy dostępności, nazwy, opisy, zdjęcia itp.) bez naruszania struktury pliku.
Na wyjściu — zaktualizowany XML, który można umieścić na hostingu i udostępniać pod linkiem.
Dane wejściowe
Plik XML.
Jeden produkt znajduje się między
<offer>…</offer>.Identyfikacja produktów odbywa się na podstawie jednego z węzłów (na przykład
<vendorCode>), ale potrzebna jest możliwość ręcznego wskazania, po którym węźle identyfikujemy, tzn. nie zawsze musi to być właśnievendorCode.Niektóre dane są przechowywane w węzłach (na przykład
<description>,<price>), a niektóre w postaci atrybutów (available="true|false"w<offer>).Są listy węzłów (na przykład
<picture>), które mogą zawierać dowolną liczbę elementów (kilka zdjęć produktu, odpowiednio i węzłów<picture>też kilka).
Plik Excel z "instrukcją" do aktualizacji.
Minimalna struktura:Identyfikator (na przykład vendorCode) Nowa wartość (nazwa węzła, atrybutu, lub wskazanie, że należy zaktualizować zdjęcie, w przypadku zdjęcia) 12345 true 67890 false Dodatkowo:
Dla węzłów typu
<picture>dopuszcza się wskazanie listy wartości w formacieurl1;url2;url3. Program ma przekształcać to w zestaw węzłów:<picture>url1</picture>
<picture>url2</picture>
<picture>url3</picture>
Dla innych węzłów lub atrybutów — w drugiej kolumnie zapisuje się nową wartość bezpośrednio.
Dla scenariusza z dodawaniem nowych węzłów: w drugiej kolumnie może być przekazany pełny węzeł (na przykład
<wholesalePrice>100</wholesalePrice>), odpowiednio należy dodać ten węzeł do odpowiedniego produktu.
Funkcjonalność
Rozwiązanie powinno zapewniać:
Odczyt pliku XML.
Wyszukiwanie potrzebnych produktów w pliku według identyfikatora (na przykład, według
<vendorCode>).Aktualizację wartości zgodnie z tabelą Excel:
Zmiana atrybutów (na przykład
available="true/false").Zmiana węzłów (
<price>,<description>,<name>itd.).Zmiana węzłów listowych (
<picture>).Dla dowolnego scenariusza - wystarczy całkowicie zastąpić stare dane nowymi. Stare dane nie muszą być przechowywane.
Dodatkowy scenariusz (opcjonalnie): możliwość masowego dodawania nowych węzłów do
<offer>(na przykład<wholesalePrice>).Zapisanie wyniku do nowego pliku XML:
Struktura powinna pozostać niezmieniona.
Format rozwiązania
Możliwe opcje realizacji:
Excel + VBA (makro):
Tabela z instrukcją w Excelu.
Przycisk uruchamiający makro, które odczytuje XML i wykonuje aktualizację.
Wynik — nowy plik XML.
Python (lub inny język) + .exe:
Osobny skrypt/program, który bierze XML + Excel z instrukcją.
Uruchomienie podwójnym kliknięciem.
Wynik — nowy plik XML w tej samej folderze.
Wymagania dotyczące użytkowania
Łatwość uruchamiania dla nietechnicznych użytkowników.
Krótka instrukcja obsługi:
Przygotować Excel z instrukcjami (identyfikator + nowa wartość).
Uruchomić skrypt/makro.
Otrzymać zaktualizowany XML.
Scenariusze edycji
Aktualizacja atrybutów (na przykład
available="true|false").Aktualizacja wartości w węźle (na przykład
<price>,<description>).Aktualizacja węzłów listowych (na przykład
<picture>). Stare elementy są usuwane, dodawane są nowe.(Opcjonalnie) Dodanie nowych węzłów do produktu.
Format oddania pracy
Gotowy plik roboczy (Excel z makrem lub .exe/skrypt).
Przykład zaktualizowanego XML po zmianach.
Instrukcja dla użytkowników (jak uruchamiać, jak przygotować Excel).
Задача:
Є XML-файл (вигрузка каталогу товарів з сайту, з вузлами <offer>).
Потрібно реалізувати рішення, яке дозволить масово редагувати дані у цьому XML (ціни, статуси наявності, назви, описи, фото, тощо) без порушення структури файлу.
На виході — оновлений XML, який можна викласти на хостинг і роздавати по посиланню.
Вхідні дані
XML-файл.
Один товар знаходиться між
<offer>…</offer>.Ідентифікація товарів здійснюється по одному з вузлів (наприклад,
<vendorCode>), але потрібна можливість вручну вказувати по якому з вузлів ідентифікуємо, тобто не завжди це має відбуватись саме поvendorCode.Деякі дані зберігаються у вузлах (наприклад,
<description>,<price>), а деякі у вигляді атрибутів (available="true|false"у<offer>).Є списки вузли (наприклад,
<picture>), які можуть містити довільну кількість елементів (декілька фото у товару, відповідно і вузлів<picture>теж декілька.
Excel-файл із "інструкцією" для оновлення.
Мінімальна структура:Ідентифікатор (наприклад vendorCode) Нове значення (назва вузла, атрибуту, чи вказівка, що оновити треба фото, для випадку з фото) 12345 true 67890 false Додатково:
Для вузлів типу
<picture>допускається вказувати список значень у форматіurl1;url2;url3. Програма має перетворювати це у набір вузлів:<picture>url1</picture>
<picture>url2</picture>
<picture>url3</picture>
Для інших вузлів або атрибутів — у другому стовпчику записується нове значення напряму.
Для сценарію з додаванням нових вузлів: у другому стовпчику може бути переданий повний вузол (наприклад
<wholesalePrice>100</wholesalePrice>), відповідно потрібно буде додати цей вузол до потрібного товару.
Функціонал
Рішення повинно забезпечувати:
Зчитування XML-файлу.
Пошук потрібних товарів у файлі за ідентифікатором (наприклад, по
<vendorCode>).Оновлення значень згідно з Excel-таблицею:
Заміна атрибутів (наприклад,
available="true/false").Заміна вузлів (
<price>,<description>,<name>і т.д.).Заміна спискових вузлів (
<picture>).Для будь-якого сценарію - достатньо повністю замінити старі дані новими. Старі дані зберігати не потрібно.
Додатковий сценарій (опціонально): можливість масово додавати нові вузли в
<offer>(наприклад<wholesalePrice>).Збереження результату у новий XML-файл:
Структура повинна залишитися незмінною.
Формат рішення
Можливі варіанти реалізації:
Excel + VBA (макрос):
Таблиця з інструкцією в Excel.
Кнопка запуску макросу, який читає XML і виконує оновлення.
Результат — новий XML-файл.
Python (або інша мова) + .exe:
Окремий скрипт/програма, яка бере XML + Excel з інструкцією.
Запуск подвійним кліком.
Результат — новий XML-файл у тій самій папці.
Вимоги до використання
Простота запуску для не технічних користувачів.
Коротка інструкція по роботі:
Підготувати Excel з інструкціями (ідентифікатор + нове значення).
Запустити скрипт/макрос.
Отримати оновлений XML.
Сценарії редагування
Оновлення атрибутів (наприклад
available="true|false").Оновлення значення у вузлі (наприклад
<price>,<description>).Оновлення спискових вузлів (наприклад
<picture>). Старі елементи видаляються, додаються нові.(Опціонально) Додавання нових вузлів у товар.
Формат здачі роботи
Готовий робочий файл (Excel з макросом або .exe/скрипт).
Приклад оновленого XML після змін.
Інструкція для користувачів (як запускати, як готувати Excel).
Opinia zleceniodawcy o współpracy z Anton T.
Makro do Excela lub inny skrypt do edytowania XML bez zmiany strukturyJakościowe wykonanie, lojalne podejście, z rezultatu i samego procesu współpracy zadowolony. Zadanie rozwiązane, wszystkie niuanse uwzględnione. Pomoc w testowaniu skryptu oraz wyjaśnienie jego funkcjonalności (zarówno osobno, jak i w formie tekstowego podręcznika) Anton zapewnił + pomógł uwzględnić pułapki, które mogłyby się pojawić w przyszłości.
Opinia freelancera o współpracy z Artem Prom
Makro do Excela lub inny skrypt do edytowania XML bez zmiany strukturyZamawiający szybko wyjaśnił niektóre kwestie, sprawdził opcje realizacji i pomyślnie zakończył projekt
-
Makro w VBA jest bardzo niewygodne do budowania struktury XML i edytowania danych, ponieważ dla VBA XML to po prostu plik tekstowy z wcięciami.
Mogę to zrealizować w Pythonie. Mam już gotowy skrypt, który formuje strukturę XML dla promu. Łatwo dodam tam edytowanie przez Excel.
Będzie działać mniej więcej tak: uruchamiacie skrypt, który czyta XML i formuje tabelę Excel. W tej tabeli zmieniacie dane i uruchamiacie skrypt, który te dane zmieni w XML.
To będzie maksymalnie proste i szybkie rozwiązanie waszego zadania.
p.s. za pomocą skryptu w Pythonie można automatycznie aktualizować ceny i dostępność z Google Sheets i od razu umieszczać na hostingu do udostępnienia przez link. Nie będzie trzeba tego robić ręcznie.
-
Cześć, pracowałem nad projektem "Analiza XML dla sklepu" – zaktualizowałem 1200 produktów, zautomatyzowałem zmiany cen i status dostępności, zachowując strukturę pliku.
Jaki format pliku Excel planujesz użyć do aktualizacji – z kodami produktów w osobnej kolumnie?
Proponuję się skontaktować, chętnie doradzę Ci bezpłatnie w kwestiach technicznych i opracujemy plan rozwoju + opowiem o moim zespole!
-
1449 24 3 Witam.
Mam doświadczenie w realizacji podobnych zadań, więc jestem pewna, że mogę wszystko zrealizować jakościowo i w ustalonych terminach. Jestem gotowa rozpocząć w najbliższym czasie. Porozmawiajmy o szczegółach w prywatnych wiadomościach.
-
151 Dzień dobry.
Mogę zrealizować w VBA. Mam kilka pytań?
1. potrzebny przykład pliku xml
2. skąd brać nowe ceny? też potrzebny przykład.
ostateczna cena i termin realizacji po omówieniu
-
669 8 0 Witaj
Mam doświadczenie w pisaniu podobnych skryptów w Pythonie. Mogę opracować taki program również dla Ciebie. Dostarczę wideo instrukcję, jak korzystać z programu.
-
4028 11 0 2 Witaj. Technologie: lxml (poprawne zachowanie struktury), pandas (odczyt Excel), PyInstaller (zbudować w .exe).
Interfejs: prosty okienkowy launcher lub konsola z podpowiedziami (wybierz XML, Excel, kolumny SKU/cena/status).
Zalety: szybko przetwarza duże pliki XML (dziesiątki–setki MB), stabilność, łatwe rozszerzenie.
-
232 1 0 Cześć, Artem!
Jestem programistą Pythona, mam doświadczenie w pracy z plikami Excel i XML.
Mogę napisać prosty skrypt, który będzie zamieniał potrzebne wartości, nie naruszając struktury pliku.
Pisz, omówimy twój projekt!
Z poważaniem,
Andrij
-
1470 6 0 1 Możemy zrobić zarówno plik .EXE, jak i rozwiązanie webowe do dostępu międzyplatformowego. Mamy duże doświadczenie w podobnych projektach.
-
986 12 1 Gotowy zrealizować rozwiązanie do masowej aktualizacji katalogu produktów XML.
Opcja 1 — Excel + makro (VBA): Tworzę makro, które:
otwiera plik XML;
znajduje produkty po numerze artykułu (analog VLOOKUP);
aktualizuje ceny i statusy dostępności z tabeli Excel;
zapisuje XML bez naruszania struktury.
Na wyjściu: gotowy plik Excel z przyciskiem uruchamiającym, instrukcja, przykład zaktualizowanego XML.
Jeśli format XML jest skomplikowany — zaproponuję alternatywę w Pythonie:
skrypt, który odczytuje Excel, aktualizuje XML i zapisuje wynik;
… mogę skompilować do .exe do uruchomienia podwójnym kliknięciem.
Rozwiązanie będzie proste w użyciu, z instrukcją dla zespołu. Gotowy dostosować do waszego formatu XML.
-
2223 18 3 Dobry wieczór, Artemie. Zajmuję się automatyzacją w Pythonie. Mogę opracować skrypt Pythona i spakować go do pliku exe dla Twoich potrzeb, zrobię to szybko i jakościowo. Jeśli jesteś zainteresowany - pisz, z przyjemnością omówię szczegóły.
-
2991 73 4 2 Witaj! Mogę napisać taki skrypt, ponieważ mam bardzo duże doświadczenie w pracy z ET Excel (ponad 20 lat!!!! Zgłaszajcie się!!!!!
-
4461 102 0 Dobry wieczór. Będę zadowolony, że mogę pomóc. Czy możesz wysłać przykład plików?
-
97 34 4 2 Zlecenie jasne
Zrobię dzisiaj
Mogę zrobić plik .exe dla Windows lub .app dla macOS
-
8194 381 0 1 Witam. Jestem zainteresowany waszym projektem. Gotowy do omówienia i wykonania w postaci programu (exe)
-
5883 345 0 Rozważę plik XML, zaproponuję realizację zmiany cen/statusów
-
656 9 0 Dobry wieczór, Artem!
Ogólnie zadanie jest zrozumiałe, aby uzyskać dokładną odpowiedź na temat terminów i ceny, chciałbym wyjaśnić kilka kwestii, które pojawiły się po analizie twojego zadania.
Pisz w prywatnych wiadomościach – omówimy szczegóły i twoje życzenia.
Aktualne zlecenia dla freelancerów w kategorii Aplikacje desktopowe
Dodać przerwy 10-30 sekund między wysyłkami e-mailiWitam! Szukam doświadczonego programisty 1C / BAS (BAF) do szybkiego rozwiązania problemu technicznego z wysyłką maili.Istota problemu: Używamy programu księgowego BAF (Business Automation Framework), edycja 2.0. Raz w miesiącu pojawia się potrzeba masowego wysyłania klientom… Programowanie stron internetowych, Aplikacje desktopowe ∙ 5 dni 11 godzin temu ∙ 10 ofert |
Rewersowe inżynieria konsolowych narzędzi do ankietowania kontrolerów SSD (Flash ID)1. Cel pracy Wydzielenie interfejsu programowania aplikacji (API) do interakcji z kontrolerami SSD/NVMe z dostarczonego zestawu narzędzi konsolowych (Phison, Silicon Motion, Realtek, Maxiotek, Marvell, JMicron itd.). Wynikiem ma być działający kod w języku C/C++ lub dokładna… C i C++, Aplikacje desktopowe ∙ 5 dni 22 godziny temu ∙ 6 ofert |
Modyfikacja w pracy emulatora
166 PLN
Witaj. Ściągnąłem z Internetu emulator automatu do gier gaminator cf final. Bardzo mi się podoba, ale są tam niedociągnięcia. Jest panel administracyjny, ale otwiera się swobodnie, a nie zamyka w ogóle. Zamyka się tylko razem z aplikacją. A dane po zmianach w panelu… Aplikacje desktopowe ∙ 13 dni 12 godzin temu ∙ 10 ofert |