štvrtok, 17 júl 2014 10:51 Written by 1504 times
Rate this item
(0 votes)

PHP - čítanie dát z Excelu

Malá ukážka ako jednoducho prečítať dáta z Excel súboru za pomoci COM objektov. Tento kúsok PHP kódu prečíta hodnotu z bunky A1

 Podmienky:
- predpokladám u programátora základné znalosti z PHP a objektového programovania
- kedže pracujeme s COM objektami, je nutné mať na webovom serveri nainštalovaný MS OFFICE (Windows OS)
- v php.ini konfiguračnom súbore modulu PHP musia byť povolená práca s COM objektami
- vytvoríme si jednoduchý excel súbor s názvom test.xls (do bunky A1 zapíšeme ľubovľný text) a nakopírujeme ho ľubovoľného adresára web serveri napr. do "d:\app\test.xls",
do toho istého adresára môžeme nakpoírovať aj zdrojový súbor PHP_read_excel.php

Obsah zdrojového súboru PHP_read_excel.php:

  $ExcelApp = new COM("excel.application") or die("Unable to start MSExcel");
  if ($ExcelWorkbook = $ExcelApp->Workbooks->Open("d:\\app\\test.xls"))
  {
    $ExcelSheet = $ExcelWorkbook->Worksheets(1);
    $ExcelSheet->Activate;
  
    $cell = $ExcelSheet->Cells(1,1);
    echo $cell->value;
    // Close workbook and sheet ...
    $ExcelWorkbook->Close();
    unset($ExcelSheet);                                
    unset($ExcelWorkbook);
  }
  else
    $error = "Error - unable to open xls file.";                                                            
  // Close excel application ...
  $ExcelApp->Quit();
  $ExcelApp = null; 
  unset($ExcelApp);

 

Vyvoláme v prehliadači. V okne prehliadača by sa mala zobraziť hodnota z bunky A1 = $ExcelSheet->Cells(1,1).

S pozdravom

 

Last modified on štvrtok, 17 júl 2014 11:02
Alojz Benďák

Autor je administrátor webu a venuje sa programovaniu takmer 20 rokov.



  • prvý kontakt s počítačmi na strednej škole - PMD 1,2,3, PP06, Atari, Sinclair (programovanie v jazyku: strojový kód, basic a pascal):  2 roky
  • na VŠ - jazyky Turbo pascal a Turbo C: 1rok
  • programovanie databázového ekonomického širokoškálneho software v Delphi a C++ Borland (databázy Paradox): 8 rokov v Codex s.r.o. Nitra
  • programovanie webových aplikácií na databázach MySQL a MS SQL server: 1 roky na živnosť (firmy: Hermes Nitra, Schindler v Bratislave)
  • pracoval ako DBA v Homecredit Brno a vo VÚB Bratislava ako vyvojár + optimalizácie v SQL a PL/SQL na Oracle 11g (firma Accenture)
  • programoval programy pre súkromné firmy pre HW na skenovanie povrchov nádrží pre skladovanie tekutých palív (pristroj Leica)
  • momentálne pracuje ako DBA pod Oracle 11g a ako vyvojár vnútropodnikových databázových aplikacií v PHP, SQL, C++, C# a interface v PL/SQL: 8 rokov
  • ďalej programuje s HTML, CSS, Ajax, Javascript, VBA, MS visual C++ a C# malé podporné aplikácie
  • certifikát SQL expert for Oracle 11g   
  • spolupracuje a aktívne učí pre počítačové firmy: Lapis, IVIT v Nitre