Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

   Рубрики
 
 
 
 

 Форуми
» SEO и оптимизация
» Всичко за PHP и Perl
» Всичко за C, C++ и .NET
» Всичко за Java и JSP
» Всичко за SQL и MySQL
» Всичко за XHTML и CSS
» Презентация на сайтове
 Създаване на Excel файл чрез PHP
  1. Създаване на Excel файл чрез PHP
     
Автор  plamenSm (27.03.2008 10:02)  съобщение до автора
Погледнат  2659 пъти  добави към любими
Оценка  добави коментар
Гласове  --  изпрати на приятел
Коментари  (0)  абонирай се за PHP
    Страница 1 / 1

 



Тук ще разберете, как да р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. Има две алтернативи:

  • Създаване на CSV Excel файл, който се запазва на сървъра
  • Динамично създаване на CSV Excel файл за download.


Създаване на файл на сървъра

За удобство е добре първо да дефинираме символа за нов ред:

CODE
1
2
3
<?php
$cr = "\n";
?>

Сега нека да подходим така: ще формираме цялата таблица в една променлива, която накрая ще запишем във файл.

Обикновено първия ред от Excel таблицата съдържа имената на колоните. Тоест трябва да започнем файла с изреждане на имената на колоните:

CODE
1
2
3
<?php
$data = "Name" . ',' . "Email" . ',' . "Age" . ',' . "Location" . $cr;
?>

Следва добавяне на редовете с данни. Нормално е да използваме променливи за стойностите на полетата. Обикновено следващия ред от кода се използва в тялото цикъл, като променливите $name, $email, $age и $location приемат необходимите стойностти при всяка итерация. Типичен случай е изчитането в цикъл на курсор върнат от SQL заявка към база данни.

CODE
1
2
3
<?php
$data .= $name . ',' . $email . ',' . $age . ',' . $location . $cr;
?>

Забележете използването на ".=" за добавяне на редовете към $data! По този начин данните се добавят в края на текста, който се съдържа в $data. Ако напишем просто "=", променливата $data ще се нулира при всяко изпълнение на горния ред, което е некоректно.

Накрая трябва да запишем готовата таблица във файл. Следващия код показва как можем да направим това:

CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$fp = fopen($filename,"a"); // $fp is now the file pointer to file $filename
if($fp)
{
   
fwrite($fp,$data); //    Write information to the file
   
fclose($fp); //    Close the file
   
echo "File saved successfully";
}
else
{
   
echo "Error saving file!";
}
?>

Променливата $filename трябва да съдържа пълното име на файла, заедно с пътя.

Забележка: Трябва да сте убедени, че имате права за четене и запис върху папката в която планирате да създадете файла.


Създаване на файл за download

При този вариянт ние няма да създаваме реален дисков файл, а по-скоро поток от данни.

Преди всичко останало PHP кода трябва да започне с хедър, който съдържа информация необходима за потребителския браузър:

CODE
1
2
3
4
5
6
<?php
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=yourfilename.csv");
header("Pragma: no-cache");
header("Expires: 0");
?>

Разбира се трябва да промените yourfilename.csv според конкретния случай. Добра идея е използването на променлива.

Следва създаването на таблицата и изпращането и на потребителя. Стъпките са същите, както в предишния случай с разликата, че вместо запис на файл, извеждаме променливата $data директно в HTTP отговора:

CODE
1
2
3
<?php
echo $data; or print($data);
?>

Ако се обърнете към този PHP скрипт, в отговор ще получите запитване за download или отваряне на файла.



   


Ключови думи: PHP excel


Още уроци от тази рубрика


 
  • Подобни теми от myLinks
 

 1 посетител чете този урок (0 потребители и 1 гост)  
Активни потребители: ---
   
  

Еmail  
 

 

 
  • Интересно от Софтуер
 



IT-PLACE.NET © 2004 - 2008