xml2xlsx

Petr Wiedemann, 25. březen 2012

Xml2xlsx je program pro převod jednoduchých XML souborů do XLSX tabulky. Pro spuštění potřebuje nainstalovaný Microsoft .NET Framework, minimálně ve verzi 3.5. Program se spouští s parametry, zadanými na příkazové řádce. Výsledná data jsou do XLSX souboru vkládána knihovnou ExtremeML.

Program je určen pro získání dat z XML souborů, které obsahují data snadno převeditelná do tabulky. Následující ukázka XML představuje typický příklad, pro který je program napsán.

<?xml version="1.0" encoding="UTF-8" ?>
<level1>
  <level2>
    <name>Item 1</name>
    <price>1</price>
    <description>Description of item 1.</description>
  </level2>
  <level2>
    <name>Item 2</name>
    <price>2</price>
    <description>Description of item 2.</description>
  </level2>
  <level2>
    <name>Item 3</name>
    <price>3</price>
    <description>Description of item 3.</description>
  </level2>
</level1>

XML data obsahují opakující se element level2, uvnitř kterého jsou elementy, které sami neobsahují žádné další zanořené elementy. Program xml2xlsx je určen k uložení hodnot z rodičovského elementu, v tomto případě jím je element level2. Xml2xlsx nepracuje s případnými atributy elementů, ale pouze s jejich hodnotami.

Následující parametry jsou povinné pro spuštění programu:

  • -f, --file
    Cesta k XML soboru.
  • -e, --element
    Rodičovský element, ve kterém budou hledána data.

Následující parametry jsou volitelné:

  • -n, --number_elements
    Seznam elementů s číselnými hodnotami. V předchozím příkladu je to například element price. Jména více elementů je možné oddělit čárkou. Například: -n price1,price2.
  • -i, --ignore_elements
    Čárkou oddělený seznam elementů, které nebudou uloženy do XLSX souboru. V předchozím příkladu by jím mohl být například element description.
  • -c, --sheet_count
    Maximální počet řádků uložených v XLSX tabulce. Program xml2xlsx neoplývá moc velkým výkonem a pokud zdrojový XML soubor obsahuje hodně jedinečných textů, může výsledné zpracování XML souboru trvat opravdu dlouho. Pokud má XML soubor řádově stovky nebo tisíce záznamů, které je nutno do XLSX tabulky uložit, může zpracování celého souboru trvat jednotky nebo i desítky minut. Tento parametr může celkový čas, potřebný pro zpracování XML souboru zkrátit, ovšem za cenu, že výstupem z programu bude několik XLSX souborů.
  • -t, --add_time
    Do jména XLSX souboru bude doplněn aktuální čas. Pokud by se XML soubor jmenoval sample.xml, budou data uložena do souboru sample-20120325-153011.xlsx, kde čísla ve jménu souboru odpovídají aktuálnímu času.
  • -v, --verbose
    Při procházení XML souboru bude do konzole vypisován počet zpracovaných elementů.
  • -u, --url
    Cesta k XML souboru, pokud je nutné jej stáhnout z internetu. Data budou uložena do souboru určeným povinným parametrem -f.
  • -x, --noproxy
    Pro stažení souboru nepoužije výchozí proxy server, nastavený v systému.
  • -s, --username a -p, --password
    Přihlašovací údaje, pokud je XML soubor stahován například z FTP serveru.

Soubory ke stažení

Ve staženém archívu s programem je k dispozici adresář test se vzorovým XML souborem a několika CMD soubory s ukázkou použití.