Tabulka je datová struktura, ve které jsou jednotlivé údaje (jednotlivá políčka tabulky) uspořádána do řádků a sloupců. V krajním případě může mít tabulka i jen jeden sloupec či jeden řádek, či sestávat jen z jediného políčka.

Podobně jako kdekoli jinde na webu, kde se setkáváme s tabulkami, pomáhají tabulky i na Wikiverzitě přehledně zobrazit například vzájemné přiřazení prvků jednoho či více seznamů, srovnávané vlastnosti různých objektů nebo výsledky získané měřením, výpočtem či rešerší. V některých případech mají též význam grafický, tedy určují vzhled stránky tím, že ve své (zpravidla neviditelné) struktuře udržují jednotlivé grafické prvky správně rozmístěny.

Vytvoření tabulky na stránce Wikiverzity

editovat

Na stránce Wikiverzity je možno tabulku vytvořit několika způsoby. Uživatelsky nejjednodušší je použití vizuálního editoru, v němž ve výběrníčku Vložit v horní liště zvolíme možnost Tabulka, a vloženou tabulku pak dále upravujeme a naplňujeme daty obdobně jako v běžných textových procesorech. Nevýhodou této metody je, že vizuálním editorem generovaný zdrojový text může být zbytečně složitý a méně vhodný pro pozdější přímé úpravy, a v případech vložení tabulky jinam než na začátek prázdného řádku může též být vytvořen chybně, takže se tabulka správně nezobrazí.

Druhým způsobem vytvoření tabulky je použití značek jazyka HTML (s drobnými omezeními) ve zdrojovém textu stránky. Pro uživatele, který již z dřívějška zná HTML, je to příjemná možnost. Její nevýhodou je ovšem, že zdrojový text stránky je potom složitější a nepřehlednější, než nutně musí být, a že výsledek snadno vybočí z celkového stylu stránek Wikiverzity.

Třetím a nejdoporučitelnějším způsobem vytvoření tabulky je její vytvoření jako tzv. wikitabulky, tedy pomocí značkového jazyka MediaWiki ve zdrojovém textu stránky. Tento způsob je stručně vysvětlen níže na této stránce. Podrobnější návod pro vytváření wikitabulek je k nalezení na české wikipedii, ještě podstatně obšírnější (ovšem v angličtině) na anglické wikipedii a nejpodrobnější (rovněž v angličtině) na Metawiki.

Základní typ tabulky

editovat

Pro ilustraci základních možností wikitabulek si vezměme tabulku, která má tři řádky a dva sloupce, v řádcích obsahuje vždy písmeno abecedy a jeho pořadové číslo, ke každému sloupci i řádku má záhlaví a celá je nadepsaná společným nadpisem:

Tři řádky písmen a čísel
Řádky Písmena Čísla
1. řádek A 1
2. řádek B 2
3. řádek C 3

Ve zdrojovém textu stránky vypadá tato tabulka takto:

{| class="wikitable"
|+ Tři řádky písmen a čísel
|-
! Řádky
! Písmena
! Čísla
|-
! 1. řádek
| A
| 1
|-
! 2. řádek
| B
| 2
|-
! 3. řádek
| C
| 3
|}

Vidíme, že celá tabulka je orámována značkami {| a |}, že |+ uvozuje nadpis, |- odděluje řádky, | uvozuje buňky s daty a ! uvozuje buňky se záhlavím. (Záhlaví řádků a sloupců i nadpis celé tabulky jsou samozřejmě nepovinné, můžeme je prostě vynechat a zbytek tabulky ponechat beze změny.) Důležité ovšem je, že všechny tyto značky musí být ve zdrojovém textu napsány na začátku řádky (bez odsazujících mezer), jinak není zaručena jejich správná funkce.

Zápis tabulky je možno též zkrátit tím, že vícero buněk stejného typu (tedy buď buněk s daty, nebo buněk se záhlavím) zapíšeme do téže řádky. Uvozující značku nové buňky pak ovšem musíme uvést zdvojeně, aby nedošlo k záměně dat a formátovacích parametrů (viz níže). Místo:

! Řádky
! Písmena
! Čísla

tedy můžeme napsat:

! Řádky !! Písmena !! Čísla

a obdobně místo:

| A
| 1

můžeme napsat:

| A || 1

Protože znaky | a ! mají formátovací význam, je potřeba je při použití v obsahu tabulky (| ve všech polohách, ! jen v řádce tímto znakem uvozené) nahradit HTML entitami | a !.

Další formátovací možnosti

editovat

Přípiska class="wikitable" na začátku tabulky přiřazuje tabulce předdefinovaný styl (oddělovací čáry, ztmavený podklad záhlaví atd.). Pokud ji vynecháme, tyto definice se nepoužijí a tabulka se objeví ve zcela holé podobě:

Tři řádky písmen a čísel
Řádky Písmena Čísla
1. řádek A 1
2. řádek B 2
3. řádek C 3

Místo předdefinovaného formátu (nebo spolu s ním takříkajíc na doladění) můžeme nyní pomocí parametrů HTML nebo vlastností CSS vytvořit formát vlastní. Pokud na místo, odkud jsme odstranili původní class="wikitable", nyní doplníme border="5" bgcolor="yellow" style="font-weight:bold;text-align:center;" bude tabulka vypadat takto:

Tři řádky písmen a čísel
Řádky Písmena Čísla
1. řádek A 1
2. řádek B 2
3. řádek C 3

Formátovat můžeme i jakoukoliv jednotlivou buňku. Buňka ovšem musí začínat na novém řádku. Úvodnímu znaku | pak předsadíme další |, následované popisem formátu. Chceme-li například, aby samotný znak A v prvním řádku byl tučný a zelený, pak místo:

| A

napíšeme:

| style="color:green;font-weight:bold;" | A

Výsledná tabulka pak bude vypadat (pro jednoduchost opět s class="wikitable" na počátku) takto:

Tři řádky písmen a čísel
Řádky Písmena Čísla
1. řádek A 1
2. řádek B 2
3. řádek C 3

Převody mezi tabulkami na Wikiverzitě a jinými formáty

editovat

Na Wikiverzitě, která tvoří platformu pro vzdělávání a výzkum, je leckdy zapotřebí využívat tabulek ke zobrazení složitějších dat z externích zdrojů, například výsledků měření při experimentu nebo strukturované databáze sledovaných objektů. Často se přitom jedná o vícero vzájemně provázaných tabulek, s nimiž je v původním kontextu mimo Wikiverzitu potřeba provádět celou řadu úprav.

Ukládat taková data ve wikitabulkách by bylo velmi těžkopádné. Jsou proto zpravidla uložena v podobě relační databázi spravované specializovaným databázovým systémem, který zvládá jejich třídění, uspořádávání, prohledávání, úpravu atd. podle daných požadavků, nebo aspoň ve vícetabulkovém sešitu tabulkového procesoru. Pro zobrazení ve formě wikitabulky je pak nutno data vhodně převést.

Formátů, v nichž databázové systémy a tabulkové procesory ukládají soubory dat, je velké množství, a jejich přímý převod do wikitabulky nebo naopak by vyžadoval velmi složité nástroje. Všechny běžné databázové systémy a tabulkové procesory ovšem umožňují export dat do jednoduchého textového formátu CSV stejně jako import dat z tohoto formátu, a převod mezi CSV a wikitabulkou je zvládnutelný poměrně snadno.

Formát CSV

editovat

Název formátu CSV je odvozen z anglického Comma-Separated Values, tedy hodnoty oddělené čárkami. Jednotlivé záznamy databáze, tj. řádky tabulky, jsou reprezentovány řádky textového souboru (tedy neviditelný znak konce řádky hraje roli oddělovače záznamů), a jednotlivé položky záznamu, tj. buňky jednoho řádku, jsou vzájemně odděleny čárkami (a případně i prázdnými znaky před čárkou nebo za čárkou).

Obsah výše uvedené tabulky bychom ve formátu CSV zapsali například takto:

A, 1
B, 2
C, 3

Softvérové nástroje pro práci s formátem CSV i exportní a importní funkce databázových systémů a tabulkových procesorů zpravidla počítají s rozšířenou definicí tohoto formátu, kdy čárka může být podle potřeby nahrazena jiným oddělovačem, třeba svislítkem, a dokonce i sekvencí prázdných znaků. Jednotlivé hodnoty mohou být též uzavřeny do uvozovek (nebo jiných uvozovacích znaků), čímž mohou být do CSV ukládány i znakové řetězce obsahující mezery nebo čárky.

Pro svou jednoduchost a lidskou čitelnost je CSV využíván jednak jako přenosový formát mezi různými databázovými a tabulkovými formáty, jednak jako vstupní formát pro zápis dat z klávesnice.

Převod z CSV do wikitabulky

editovat

Převod z formátu CSV do podoby wikitabulky je možno provést i v obyčejném textovém editoru: čárky (či jiné použité oddělovací znaky) nahradíme dvěma svislítky a znak nové řádky nahradíme dvěma znaky nové řádky, mezi nimiž budou vloženy znaky |- a po nichž bude následovat znak | na uvození další řádky tabulky.

Stejný převod jde provést též jednořádkovým perlovským příkazem třeba takto:

perl -pe 's/,/ ||/g;s/\n/\n|-\n|/g' < vstup.csv > vystup.txt

Začátek a konec tabulky, případné záhlaví a podle potřeby formátovací údaje následně můžeme doplnit do wikitabulky ručně.

Převod wikitabulky do CSV

editovat

Převod z wikitabulky do CSV je složitější, protože syntaxe wikitabulky je variabilní (například mohou být jednotlivé buňky napsány na samostatné řádky nebo doplněny formátovacími údaji). Pokud byla zachována jednoduchá základní syntaxe, pak stačí vymazat svislítka na začátku datových řádek, oddělovací dvojsvislítka nahradit čárkami a vyřadit řádky s oddělovačem řádku tabulky. Za pomoci regulárních výrazů to můžeme udělat například jednořádkovým perlovským příkazem:

perl -ne 'next if /^\|-$/;s/ *\|\|/,/g;s/^\|//; print' < vstup.txt > vystup.csv

Obecně však platí, že zatímco CSV je formát přímo určený pro uchovávání a přenos dat, smyslem wikitabulky je jejich zobrazování. Mají-li být data, která zobrazujeme v tabulkách na stránkách Wikiverzity, zpracovávána ještě jiným způsobem, je vhodné uchovávat je v CSV (nebo jiném do CSV beze zbytku převoditelném formátu), a z toho pak podle potřeby vždy vygenerovat wikitabulku.

Návody

editovat

Generátory a převodníky tabulek

editovat

Různé generátory a převody formátu tabulek:

Webové aplikace

editovat

Zpětný převod WIKI na jiné formáty

editovat