Проект «SnakeProject» Михаила КозловаРегистрация

Навигация
⇐CISCO
⇐Voice(Asterisk\Cisco)
⇐Microsoft
⇐Powershell
⇐Python
⇐SQL\T-SQL
⇐FreeBSD and Nix
⇐1С
⇐Общая
⇐WEB Разработка
⇐ORACLE SQL \ JAVA
⇐Мото

phpexcel: писать данные в Excel с помощью PHP и читать из Excel


Задача писать данные в Excel с помощью PHP и читать из Excel

Выбор пал на библиотеку phpexcel

Как сказал Гагарин - "Поехали!"

//Скачать библиотеку - http://phpexcel.codeplex.com/
//Нашел русскую документацию - http://www.cyberforum.ru/php-beginners/thread1074684.html
//Подключаем скачаную библиотеку

include("Classes/PHPExcel.php");

if($_GET['do']==1){
    //Запрос и выборка данных из базы
    //В моем примере я подключаюсь к базе MS SQL
    //В Вашем примере вы указываете свое подключение MySQL\MS SQL\Postgree...

    include("../../base/ip_acct.php");

    $sql = "select TOP 5 id, name, info FROM ip_acct.dbo.points WHERE client_id = 780 AND info IS NOT NULL";
    $result = sqlsrv_query( $iconn, $sql );

    $l = array();

    while($r = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC)){
        //Результат выборки данных в массиве $l
        $l[] = $r;
    };

    //------------------------------------
    //1 Часть: запись в файл

    //Создание объекта класса библиотеки
    $objPHPExcel = new PHPExcel();

    //Указываем страницу, с которой работаем
    $objPHPExcel->setActiveSheetIndex(0);

    //Получаем страницу, с которой будем работать
    $active_sheet = $objPHPExcel->getActiveSheet();

    //Создание новой страницы(пример)
    //$objPHPExcel->createSheet();

    //Ориентация и размер страницы
    // $active_sheet->getPageSetup()
        // ->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT);

    $active_sheet->getPageSetup()
        ->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE);
    $active_sheet->getPageSetup()
        ->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);
        
    //Имя страницы
    $active_sheet->setTitle("Данные из docs");
        
    //Ширина стобцов
    $active_sheet->getColumnDimension('A')->setWidth(8);
    $active_sheet->getColumnDimension('B')->setWidth(10);
    $active_sheet->getColumnDimension('C')->setWidth(90);

    //Объединение ячеек
    $active_sheet->mergeCells('A1:C1');    

    //Высота строки
    $active_sheet->getRowDimension('1')->setRowHeight(30);

    //Вставить данные(примеры)
    //Нумерация строк начинается с 1, координаты A1 - 0,1

    $active_sheet->setCellValueByColumnAndRow(0, 1, 'Сегодня '.date('d-m-Y'));
    $active_sheet->setCellValue('A3', 'id');
    $active_sheet->setCellValue('B3', 'name');
    $active_sheet->setCellValue('C3', 'info');

    //Вставка данных из выборки
    $start = 4;
    $i = 0;
    foreach($l as $row_l){
        $next = $start + $i;
        
        $active_sheet->setCellValueByColumnAndRow(0, $next, $row_l['id']);
        $active_sheet->setCellValueByColumnAndRow(1, $next, $row_l['name']);
        $active_sheet->setCellValueByColumnAndRow(2, $next, $row_l['info']);
        
        $i++;
    };

    //Отправляем заголовки с типом контекста и именем файла
    header("Content-Type:application/vnd.ms-excel");
    header("Content-Disposition:attachment;filename='simple.xlsx'");

    //Сохраняем файл с помощью PHPExcel_IOFactory и указываем тип Excel
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');

    //Отправляем файл
    $objWriter->save('php://output');
};

if($_GET['do']==2){
    //------------------------------------
    //2 Часть: чтение файла
    //Файл лежит в директории веб-сервера!

    $objPHPExcel = PHPExcel_IOFactory::load("simple.xlsx");

    foreach ($objPHPExcel->getWorksheetIterator() as $worksheet)
    {
        //Имя таблицы
        $Title              = $worksheet->getTitle();
        //Последняя используемая строка
        $lastRow         = $worksheet->getHighestRow();
        //Последний используемый столбец
        $lastColumn      = $worksheet->getHighestColumn();
        //Последний используемый индекс столбца
        $lastColumnIndex = PHPExcel_Cell::columnIndexFromString($lastColumn);
        
        echo $Title.'<table border="1" cellspacing="0"><tr>';
        for ($row = 1; $row <= $lastRow; ++$row)
        {
            echo '<tr>';
            for ($col = 0; $col < $lastColumnIndex; ++ $col) 
            {
                $val = $worksheet->getCellByColumnAndRow($col, $row)->getValue();
                echo '<td>'.$val.'&nbsp;</td>';
            };
            echo '</tr>';
        };
        echo '</table>';
    };
};
    
exit();

На этом - все, видео выложу на своем канале в YouTube


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

© Snakeproject.ru создан в 2013 году. При копировании материала с сайта - оставьте ссылку.


Яндекс.Метрика

Goon Каталог сайтов Рейтинг@Mail.ru