|
Тук ще разберете, как да рaботите с файлове в Excel формат с PHP. Ще разгледаме само случая с разделени със запетая стойностти. За целта е необходимно да имате основни познания за CSV стандрата - "Comma Separated Values".
Когато Excel записва файл, той го записва във специфичен формат и не е възможно да го отворите и разгледате, както обикновен текстов файл. Създаването чрез PHP на файл, който може да се отвори с Excel е сложно, но е възможно. Използването на CSV формат е едно решение за създаване на файл, чрез който можете да предадете таблично представени данни към Excel. Всъщност CSV Excel файловете са текстови файлове с разширение .CSV. Да разгледаме един пример. Създаваме малка таблица с 4 колони: Name, Email, Age и Location в Excel и я записваме в CSV формат. Name,Email,Age,Location Chris,csuppa@yahoo.com,23,Miami John,john@mail.com,17,Washington DC Kim,butterfy321@aol.com,22,Texas Albert,ae@prag.net,30,Germany Това е текста, който ще видите, ако отворите CSV Excel файла с Notepad (или друг текстов редактор). Полетата са разделени със запетая, а редовете с със символа за нов ред (carriage return или съкратено „CR”). По този начин Excel „знае”, че след запетая преминава в следващата колона, а след CR на следващия ред от таблицата. До тук разгледахме основите на CSV формата. Сега да видим как можем да използваме този формат с PHP. Има две алтернативи:
Създаване на файл на сървъра За удобство е добре първо да дефинираме символа за нов ред: CODE
Сега нека да подходим така: ще формираме цялата таблица в една променлива, която накрая ще запишем във файл. Обикновено първия ред от Excel таблицата съдържа имената на колоните. Тоест трябва да започнем файла с изреждане на имената на колоните: CODE
Следва добавяне на редовете с данни. Нормално е да използваме променливи за стойностите на полетата. Обикновено следващия ред от кода се използва в тялото цикъл, като променливите $name, $email, $age и $location приемат необходимите стойностти при всяка итерация. Типичен случай е изчитането в цикъл на курсор върнат от SQL заявка към база данни. CODE
Забележете използването на ".=" за добавяне на редовете към $data! По този начин данните се добавят в края на текста, който се съдържа в $data. Ако напишем просто "=", променливата $data ще се нулира при всяко изпълнение на горния ред, което е некоректно. Накрая трябва да запишем готовата таблица във файл. Следващия код показва как можем да направим това: CODE
Променливата $filename трябва да съдържа пълното име на файла, заедно с пътя. Забележка: Трябва да сте убедени, че имате права за четене и запис върху папката в която планирате да създадете файла. Създаване на файл за download При този вариянт ние няма да създаваме реален дисков файл, а по-скоро поток от данни. Преди всичко останало PHP кода трябва да започне с хедър, който съдържа информация необходима за потребителския браузър: CODE
Разбира се трябва да промените yourfilename.csv според конкретния случай. Добра идея е използването на променлива. Следва създаването на таблицата и изпращането и на потребителя. Стъпките са същите, както в предишния случай с разликата, че вместо запис на файл, извеждаме променливата $data директно в HTTP отговора: CODE
Ако се обърнете към този PHP скрипт, в отговор ще получите запитване за download или отваряне на файла.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||









