XXML

Konwersja plików Excel/LibreOffice/CSV do formatu XML

O programie...


Program XXML służy do uniwersalnej obróbki plików XML oraz konwersji danych z tabel dwu-wymiarowych do stuktur drzewiastych prezentowanych przez format XML.

Program został napisany na wewnętrzne potrzeby firmy, jednak jego przydatność okazała się na tyle wysoka, że zdecydowano się na opublikowanie programu.


Podstawowe funkcje programu


Funkcje ogólne

  • Prezentacja pliku XML w formie drzewiastej.
  • Prezentacja węzłów XML w formie tabelarycznej.
  • Export tabeli do formatu arkusza kalkulacyjnego.
  • Wyszukiwanie i zamiana łańcuchów w węzłach.
  • Tworzenie szablonu do konwertera XXLS.

Funkcje modułu konwertera XXLS

  • Odczyt z formatów tabelarycznych MS Excel, LibreOffice, CSV.
  • Opcja automatycznego rozpoznania początku pliku z danymi.
  • Możliwość stosowania obliczeń w węzłach.
  • Możliwość używania nazw węzłów w regułach.
  • Możliwość pomijania wierszy, w których puste są wskazane kolumny.
  • Możliwość wskazania zakresu gałęzi do powielania.
  • Możliwość stosowania prostych podsumowań.
  • Wbudowany edytor XML do podglądu/edycji pliku wynikowego.
  • Wbudowana opcja pobierania aktualnych kursów walut.

Funkcje modułu zamiany danych

  • Przechowywanie list użytkownika zawierających tabelę zamian
  • Możliwość wskazywania gałęzi, w których mają być dokonane zamiany
  • Szukanie fragmentaryczne, możliwość ignorowania wielkości znaków
  • Podgląd pliku wynikowego

Wsparcie


Szanowni Państwo, Moduł konwersji (XXLS) wymaga utworzenia szablonu XML, który służy jako baza przekształcenia informacji z kolumn w pliku importu w odpowiednie pola pliku XML. Umożliwia również przeliczenia, łączenie pól, itp. Oferujemy ze swojej strony pomoc w tworzeniu szablonów XML. Aby dostosować Państwa pliki importu i odpowiedzieć na pytanie dotyczące możliwości użycia programu do Państwa potrzeb potrzebujemy zwykle przykładowe pliki danych wejściowych (xls/xlsx) oraz wymaganego (przykładowego) formatu wyjściowego XML.

Galeria ekranów


Wymagania programu


  • Komputer PC (architektura x86) z procesorem min. 300MHz, pamięć min. 64MB.
  • System operacyjny Windows XP/Vista/7/8/nowszy.
  • Program MS Excel XP/2003/2007/2010/2013/nowszy.
  • Znajmość formatu XML Optima przez użytkownika w celu stworzenia odp. reguł

Szablony XXLS


Moduł konwertera XXLS do działania wymaga dwóch plików wejściowych. Pierwszy z nich, to plik zawierający dane tabelaryczne (zwykle plik MS Excel, LibreOffice lub CSV). Drugi z nich to plik szablonu XML.

Plik szablonu XML

Plik szablonu to plik XML zawierający analogiczne znaczniki, jak plik wynikowy, ale zwykle ich pojedyncze wystąpienia. Jest to plik o strukturze jaka byłaby utworzona, gdyby plik z danymi tabelarycznymi zawierał tylko jeden wiersz danych. Dodatkowo w szablonie zamiast rzeczywistych danych znajdują się odwołania do odpowiednich numerów kolumn arkusza (tabeli) lub do nazw węzłów lub ich połączenie w regułach.

Dodatkowo w pliku szablonu występuje gałąź o nazwie xxml_settings zawierająca informacje o regułach przekształcenia. W tej części mogą występować m.in. następujące węzły:

firstdatarowpierwszy wiersz z danymi z pliku danych tabelarycznych (domyślnie pierwszy)
lastdatarowpierwszy wiersz z danymi z pliku danych tabelarycznych (domyślnie ostatni)
keep_variables...
force_nodes_to_replicateinformacja o gałęziach do powtarzania z każdym wierszem (jeśli nie podano, program stosuje wewnętrzne sposoby poszukiwania)
save_formatinformacja czy zapis XML ma być z podziałem na wiersze

Dodatkowo ustawienie atrybutu xxml='' spowoduje wyświetlenie danego pola do edycji dla klienta w odpowiednim interfejsie programu.

Lista reguł tworzenia szablonu:

  • Wyrażenia rozpoczynają się i kończą podwójnym podkreśleniem __.
  • Odwołania do komórek arkusza rozpoczynają się znakiem dolara $.
  • Odwołania do węzłów rozpoczynają się znakiem wykrzyknika !.
  • Odwołania do stałych programu umieszcza się w podwójnym nawiasie kwadratowym [[ ]]
  • Łańcuchy znaków w wyrażeniach umieszcza się w cudzysłowach "
  • Argumenty funkcji podaje się po przecinku ,.
  • Zamiast numeru kolumny można podać cały adres (jako stała): $A1.
  • Lista obsługiwanych funkcji i operatorów:
    • operatory: ^ * / + - & | > < >= <= = @
    • nawiasy
    • funkcje wieloargumentowe
    • funkcje zewnętrzne
    • if, abs, min, max, round, sqr, sqrt, log, sin, cos, pi
    • copy, pos, right, left, len, leftarg, rightarg, incday, now
    • counter()
  • ...

Przykładowy szablon XML można pobrać z plików: test1_szablon.xml, test2_szablon.xml

Przykładowe dane (szablon i dane tabelaryczne) można pobrać z pliku: test1.7z


<?xml version="1.0" encoding="UTF-8"?>
<ROOT xmlns="http://www.cdn.com.pl/optima/dokument">
  <xxml_settings>
    <firstdatarow xxml="ask:'pierwszy wiersz z danymi'">2</firstdatarow>
    <lastdatarow xxml="ask:'ostatni wiersz z danymi'">100</lastdatarow>
    <keep_variables>1</keep_variables>
    <force_nodes_to_replicate>
      <node>/ROOT/REJESTRY_SPRZEDAZY_VAT/REJESTR_SPRZEDAZY_VAT</node>
    </force_nodes_to_replicate>
    <save_format>readable</save_format>
  </xxml_settings>
  <REJESTRY_SPRZEDAZY_VAT>
    <WERSJA/>
    <BAZA_ZRD_ID/>
    <BAZA_DOC_ID/>
    <REJESTR_SPRZEDAZY_VAT>
      <REJESTR><![CDATA[SPRZEDAŻ]]></REJESTR>
      <DATA_WYSTAWIENIA><![CDATA[__$A__]]></DATA_WYSTAWIENIA>
      <DATA_SPRZEDAZY><![CDATA[__!DATA_WYSTAWIENIA__]]></DATA_SPRZEDAZY>
      <TERMIN><![CDATA[__$G__]]></TERMIN>
      <NUMER><![CDATA[__$B__]]></NUMER>
      <KOREKTA/>
      <FISKALNA>NIE</FISKALNA>
      <DETALICZNA>NIE</DETALICZNA>
      <FINALNY>NIE</FINALNY>
      <KRAJ>__IF($F="PLN", "PL", "UNIA")__</KRAJ>
      <EKSPORT>__IF(!KRAJ="PL", "Nie", "poza terytorium kraju")__</EKSPORT>
      <IDENTYFIKATOR_KSIEGOWY><![CDATA[__$B__]]></IDENTYFIKATOR_KSIEGOWY>
      <TYP_PODMIOTU><![CDATA[kontrahent]]></TYP_PODMIOTU>
      <PODMIOT><![CDATA[__$C__]]></PODMIOT>
      <NAZWA1><![CDATA[__$C__]]></NAZWA1>
      <NIP_KRAJ>__!KRAJ__</NIP_KRAJ>
      <NIP><![CDATA[__$I__]]></NIP>
      <ULICA></ULICA>
      <NR_DOMU></NR_DOMU>
      <MIASTO></MIASTO>
      <KOD_POCZTOWY></KOD_POCZTOWY>
      <KATEGORIA><![CDATA[__IF(!KRAJ="PL", "KRAJ", "UNIA")__]]></KATEGORIA>
      <KATEGORIA_ID><![CDATA[__!KATEGORIA__]]></KATEGORIA_ID>
      <OPIS></OPIS>
      <FORMA_PLATNOSCI>przelew</FORMA_PLATNOSCI>
      <DEKLARACJA_VATUE>__IF(!KRAJ="PL", "Nie", "Tak")__</DEKLARACJA_VATUE>
      <WALUTA><![CDATA[__$F__]]></WALUTA>
      <KURS_WALUTY><![CDATA[KURS]]></KURS_WALUTY>
      <NOTOWANIE_WALUTY_ILE>__$L__</NOTOWANIE_WALUTY_ILE>
      <NOTOWANIE_WALUTY_ZA_ILE>1</NOTOWANIE_WALUTY_ZA_ILE>
      <DATA_KURSU><![CDATA[__$A__]]></DATA_KURSU>
      <KURS_WALUTY_2><![CDATA[KURS]]></KURS_WALUTY_2>
      <NOTOWANIE_WALUTY_ILE_2>__!NOTOWANIE_WALUTY_ILE__</NOTOWANIE_WALUTY_ILE_2>
      <NOTOWANIE_WALUTY_ZA_ILE_2>1</NOTOWANIE_WALUTY_ZA_ILE_2>
      <POZYCJE>
        <POZYCJA>
          <KATEGORIA_POS><![CDATA[__!KATEGORIA__]]></KATEGORIA_POS>
          <KATEGORIA_ID_POS><![CDATA[__!KATEGORIA__]]></KATEGORIA_ID_POS>
          <STAWKA_VAT>__IF($J!="NP.", $J, "0")__</STAWKA_VAT>
          <STATUS_VAT>__IF(!STAWKA_VAT="NP.", "nie podlega", "opodatkowana")__</STATUS_VAT>
          <NETTO>__$D__</NETTO>
          <VAT>__$K__</VAT>
          <NETTO_SYS>__ROUND(!NETTO * !NOTOWANIE_WALUTY_ILE,2)__</NETTO_SYS>
          <VAT_SYS>__ROUND(!VAT * !NOTOWANIE_WALUTY_ILE,2)__</VAT_SYS>
          <NETTO_SYS_2>__!NETTO_SYS__</NETTO_SYS_2>
          <VAT_SYS_2>__!VAT_SYS__</VAT_SYS_2>
          <RODZAJ_SPRZEDAZY>USŁUGI</RODZAJ_SPRZEDAZY>
        </POZYCJA>
      </POZYCJE>
      <PLATNOSCI>
        <PLATNOSC>
          <TERMIN_PLAT><![CDATA[__!TERMIN__]]></TERMIN_PLAT>
          <FORMA_PLATNOSCI_PLAT><![CDATA[__!FORMA_PLATNOSCI__]]></FORMA_PLATNOSCI_PLAT>
          <KWOTA_PLAT>__ABS(!NETTO + !VAT)__</KWOTA_PLAT>
          <WALUTA_DOK><![CDATA[__!WALUTA__]]></WALUTA_DOK>
          <KURS_WALUTY_PLAT><![CDATA[__!KURS_WALUTY__]]></KURS_WALUTY_PLAT>
          <NOTOWANIE_WALUTY_ILE_PLAT>__!NOTOWANIE_WALUTY_ILE__</NOTOWANIE_WALUTY_ILE_PLAT>
          <NOTOWANIE_WALUTY_ZA_ILE_PLAT>__!NOTOWANIE_WALUTY_ZA_ILE__</NOTOWANIE_WALUTY_ZA_ILE_PLAT>
          <KWOTA_PLN_PLAT>__ROUND(ABS(!NETTO_SYS + !VAT_SYS),2)__</KWOTA_PLN_PLAT>
          <KIERUNEK>__IF(!NETTO>0,"przychód","rozchód")__</KIERUNEK>
          <PODLEGA_ROZLICZENIU>Tak</PODLEGA_ROZLICZENIU>
          <DATA_KURSU_PLAT><![CDATA[__!DATA_KURSU__]]></DATA_KURSU_PLAT>
          <WALUTA_PLAT><![CDATA[__IF(!WALUTA="PLN", "", !WALUTA)__]]></WALUTA_PLAT>
        </PLATNOSC>
      </PLATNOSCI>
    </REJESTR_SPRZEDAZY_VAT>
  </REJESTRY_SPRZEDAZY_VAT>
</ROOT>

Po konwersji plik wynikowy nazywa się tak jak plik oryginalny z przyrostkiem _output w nazwie pliku.

Dane kontaktowe


e-storm.pl
Michał Głębowski
e-storm.pl
Tel: (48) 888 227 227
e-mail
michal@glebowski.pl

Cennik


Cena programu waha się między 220 a 440 zł netto w zależności od aktywnych funkcji. Więcej informacji mailowo.