T&R splet blog o spletnih storitvah. Razgaljamo tehnologijo!

reference spletnih strani
8th June

PHP – pretvorba Excel datoteke v .txt datoteko – Excel to txt converter

Sedaj, ko poznamo način kako prebrati Excel datoteko se lahko lotimo tudi pretvorbe Excel datoteke v poljuben format, na primer .txt. Zakaj bi to potrebovali, če je Excel boljši način za urejanje / pregled podatkov? Omenjena funkcionalnost pride prav, ko moramo komunicirati s tretjim programom, ki ne podpira branje Excel datoteke ampak le branje .txt datoteke, kjer je vsak stolpec ločen s tabom (\t) in vsaka vrstica ločena s znakom za novo vrstico (\n).

O branju Excela tukaj ne bomo izgubljali besede, celotni postopek je bil enkrat že opisan. Predpostavimo, da imamo v $data spremenljivki celotno vsebino Excel datoteke. Nato s pomočjo PHP foreach konstrukta prečesamo celotno tabelo (array) in zapisujemo podatke v Text (Tab-Delimited) File formatu:

PHP:
  1. // Transform excel file to .txt file - add BOM char at the start
  2. // only for wordpad - notepad UTF8 support
  3. $textFile = "\xEF\xBB\xBF";
  4.  
  5. foreach($data as $row) {
  6.     // Get last key
  7.     end($row);
  8.     $lastKey = key($row);
  9.     reset($row);
  10.  
  11.     foreach($row as $key => $field) {
  12.         $textFile .= $field;
  13.  
  14.         if ($key != $lastKey) {
  15.             $textFile .= "\t";
  16.         }
  17.     }
  18.  
  19.     $textFile .= "\n";
  20. }
  21.  
  22. file_put_contents('test.txt', $textFile);

Primer .txt datoteke:
Pretvorba excel datoteke v txt format

Zakaj pa dodamo "\xEF\xBB\xBF" (BOM znak) na začetu stringa? Zato, da wordpad oz. notepad pravilno zaznata encoding datoteke. BOM znak lahko izpustimo vendar moramo datoteko nato prebrati s programom, ki samodejno prepozna encoding brez pomoči BOM znaka, kot na primer Zend Studio. Primer, kaj se zgodi, če ne vključimo BOM znaka in datoteko (.txt) preberemo s WordPad programom:
Primer konvertiranja excel podatkov v txt podatke - brez UTF8 podpore

Ker dodamo BOM znak na začetku je ZELO POMEMBNO, da ga pri branju podatkov tudi upoštevamo, primer:

PHP:
  1. // If there is BOM char at the begining, clear it
  2. if (strpos($test, "\xEF\xBB\xBF") !== false) {
  3.     $test = str_replace("\xEF\xBB\xBF", "", $test, $count);
  4. }

Drugače boste dobivali zelo čudne napake / rezultate. Več o teh težavah povezanih z BOM znakom.

Dodatne informacije:

Datoteke:

Deli s skupnostjo:

  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks

Podobni članki:

  1. PHP – Kreiranje Excel datoteke – Pisanje v Excel datoteko – PHP – xls
  2. Preprosta skripta – kreiranje Excel datoteke iz PHP tabele/array
  3. PHP – branje Excel (.xls) datoteke – Excel UTF8 branje
  4. Shrani datoteko / Odpri datoteko dialog – download center (mime-type, Content-type, Content-Disposition)
  5. PHP – Kreiranje PDF datoteke – DOMPDF – TCPDF
  6. PHP – kako ugotoviti tip datoteke (get file extension type)
  7. Absolutna / relativna pot do imenika – datoteke
  8. PHP – ZenCart – utf8 – slovenski jezik – slovenski prevod – pretvorba jezikov
  9. Omejitev dostopa do spletne strani preko apache .htaccess in .htpasswd datoteke
  10. Predogled PDF-ja – pretvorba PDF v jpeg s pomočjo PHP-ja

1 komentar na “PHP – pretvorba Excel datoteke v .txt datoteko – Excel to txt converter”

  1. PHP - Kreiranje Excel datoteke - Pisanje v Excel datoteko - PHP - xls | .: TRSplet - internetne storitve .: je napisal:

    [...] PHP - pretvorba Excel datoteke v .txt datoteko - Excel to txt converter [...]

Dodaj komentar