Home PageКаталог Изменения НовыеКомментарии Пользователи Регистрация
CakePHP: Code/Helpers/xls ...

Создатель Excel


Написан Cleiton Wasen aka “wasenbr”

Код помощника

<?php 
/**
* By Cleiton Wasen
* wasenbr at gmail.com
* Основано на http://www.appservnetwork.com/modules.php?name=News&file=article&sid=8
*  
*/
class XlsHelper {

    var 
$helpers = array();

    
/**
    * устанавливаются заголовки
    * @param $filename the xls file name
    */
    
function setHeader($filename) {
        
header("Pragma: public");
        
header("Expires: 0");
        
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
        
header("Content-Type: application/force-download");
        
header("Content-Type: application/octet-stream");
        
header("Content-Type: application/download");;
        
header("Content-Disposition: attachment;filename=$filename");
        
header("Content-Transfer-Encoding: binary ");
    }

    
/**
    * начинается запись в xls файл
    */
    
function BOF() {
        echo 
pack("ssssss"0x8090x80x00x100x00x0);  
        return;
    }

    
/**
    * файл заканчивается этим
    */
    
function EOF() {
        echo 
pack("ss"0x0A0x00);
        return;
    }

    
/**
    * записывается число
    * @param $Row row to write $Value (first row is 0)
    * @param $Col column to write $Value (first column is 0)
    * @param $Value number value
    */
    
function writeNumber($Row$Col$Value) {
        echo 
pack("sssss"0x20314$Row$Col0x0);
        echo 
pack("d"$Value);
        return;
    }

    
/**
    * записывается строка
    * @param $Row row to write $Value (first row is 0)
    * @param $Col column to write $Value (first column is 0)
    * @param $Value string value
    */
    
function writeLabel($Row$Col$Value) {
        
$L strlen($Value);
        echo 
pack("ssssss"0x204$L$Row$Col0x0$L);
        echo 
$Value;
    return;
    }

}
?>

Пример применения


<?php
    
// Посылаем заголовок (название файла в параметре)
    
$xls->setHeader('text_'.date('Y_m_d').'.xls');

    
// Пишем файл
    
$xls->BOF();
    
$xls->writeLabel(1,0,"Student Register");
    
$xls->writeLabel(2,0,"COURSENO : ");
    
$xls->writeLabel(2,1,"123");
    
$xls->writeLabel(3,0,"TITLE : ");
    
$xls->writeLabel(3,0,"BlaBlaBla");
    
$xls->writeLabel(4,0,"SETION : ");
    
$xls->writeLabel(6,0,"NO");
    
$xls->writeLabel(6,1,"ID");
    
$xls->writeLabel(6,2,"Gender");
    
$xls->writeLabel(6,3,"Name");
    
$xls->writeLabel(6,4,"Lastname");
    
$xls->EOF();
    exit();
?>


 
Комментарии

Очень хорошо! Ваш хелпер очень помог мне, огромное спасибо!

222-93.pppoe.vitebsk.by (2008-02-26 19:49:22)

Он создает валидный Excel файл? Очень занятно ...

web.utech.ru (2008-05-21 06:25:26)
а как открыть существующий файл?
okd.ru (2010-11-11 11:39:46)
Добавить комментарий:

Файлы [Скрыть файлы/форму]