Doba, kdy budou všechny sekretářky a ostatní zaměstnanci umět ovládat databáze, je ještě hodně daleko. Proč je tedy nenechat pracovat ve stejném prostředí, ve kterém například už léta vytvářejí ceníky? Zmíněný ceník pak nemusíte neustále přepisovat po každé aktualizaci do HTML, stačí soubor uložit na server a aktuální ceník je hotov.

ODBC je univerzální nástroj pro kontakt téměř se všemi databázemi. Ale nejen s nimi. Pomocí ODBC můžete přistupovat třeba k datům ze souboru MS Excel.

Mapování ODBC zdroje – sešit MS Excel

Abyste mohli přistupovat k souboru MS Excel, musíte si nejdříve namapovat daný soubor, ke kterému chcete přistupovat. Je to jednoduché, stačí k tomu pár kliknutí myší:

  1. Z menu „Start“ vyberte složku „nastavení“, klikněte na „Ovládací panely“.
  2. Poklepejte na ikonku „Zdroje dat ODBC“ (v anglické verzi ODBC Data), přejděte do záložky „Systémové DSN“ (system DSN) a klikněte na tlačítko „přidat“ (add).
  3. Poklepejte na „Microsoft Excel Driver (*.xls)“.
  4. Do pole „Název zdroje dat“ (data source name) zadejte jméno datového zdroje, který budete používat ve svém kódu.
  5. V poli „verze“ (version) vyberte verzi MS Excel, ve které byl sešit vytvořen.
  6. Stiskněte tlačítko „Vybrat sešit“ (select Workbook) a na svém disku vyberte požadovaný soubor, který chcete „namapovat“.
  7. Stiskněte tlačítko „OK“.

Názvy polí (sloupců)

Název pole se udává přímo v listu sešitu, a to na prvním řádku daného sloupce. Pokud je první buňka ve sloupci prázdná, je sloupec nazván písmenem F, za nímž následuje číslo, které označuje pořadí sloupce v sešitu od levého okraje:

  Jmeno Prijmeni
1 Petr Vomacka
2 Josef Opicka
3 Karel Sadlo

Dotaz na tento list pak může vypadat takto:

SELECT F1, Jmeno, Prijmeni FROM `list$`

Data ze souboru můžete získat pomocí SQL dotazů přes ODBC. Zadávání dotazů přes ODBC v PHP a ASP popisuje článek Milana Jakela MySQL a rozhraní ODBC. Základy SQL pak můžete najít v článcích Jaromíra Skřivana Jak na dotazy v jazyce SQL? (I.) a Dotazy v jazyce SQL (II.).

Listy sešitu

Jednou z mála výjimek oproti standardním SQL dotazům je řízení přístupu k tabulkám, jež jsou v MS Excelu představovány jednotlivými listy. Název listu musí být uzavřen do apostrofů a před druhým apostrofem musí stát značka dolaru. Dotaz může vypadat například takto:

SELECT * FROM `nazev_listu$`

Převod celého listu do HTML

Pokud chcete převést celý list do HTML, můžete to snadno provést pomocí následujícího dotazu (použiji tabulku – list „seznam“, v sešitu namapovaném jako nazev_zdroje_dat):

<? $link = odbc_connect(„nazev_zdroje_dat“,““,““);
$sql = „SELECT * FROM `seznam$`“;
$rid = odbc_exec($link,$sql);
odbc_result_all($rid);
odbc_close($link);?>

Vygenerovaný HTML kód vypadá takto:

<table><tr><th>F1</th><th>Jmeno</th><th>Prijmeni</th></tr> <tr><td>1.0</td><td>Petr</td><td>Vomacka</td></tr> <tr><td>2.0</td><td>Josef</td><td>Opicka</td></tr> <tr><td>3.0</td><td>Karel</td><td>Sadlo</td></tr> </table>

Kvůli tomu, že nejde zabezpečit soubor xls pro přístup přes SQL, je nutné ho „zabezpečit“ zamezením zápisu dat. Lze z něj tedy pouze číst, a proto jej nelze upravovat. Popis úprav sešitu MS Excel přesahuje rámec tohoto článku, pokud byste však měli zájem, mohu jej probrat někdy příště.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Žádný příspěvek v diskuzi

Odpovědět