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:
-
// Transform excel file to .txt file - add BOM char at the start
-
// only for wordpad - notepad UTF8 support
-
$textFile = "\xEF\xBB\xBF";
-
-
foreach($data as $row) {
-
// Get last key
-
-
foreach($row as $key => $field) {
-
$textFile .= $field;
-
-
if ($key != $lastKey) {
-
$textFile .= "\t";
-
}
-
}
-
-
$textFile .= "\n";
-
}
-
-
file_put_contents('test.txt', $textFile);
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:

Ker dodamo BOM znak na začetku je ZELO POMEMBNO, da ga pri branju podatkov tudi upoštevamo, primer:
-
// If there is BOM char at the begining, clear it
-
}
Drugače boste dobivali zelo čudne napake / rezultate. Več o teh težavah povezanih z BOM znakom.
Dodatne informacije:
Datoteke:


junij 10th, 2008 ob 12:04 dopoldne
[...] PHP - pretvorba Excel datoteke v .txt datoteko - Excel to txt converter [...]