Created
November 17, 2017 00:37
-
-
Save spacebit-official/0aea2900d07aaf431a0891b81b7c8f9a to your computer and use it in GitHub Desktop.
PHPExcel_db_to_Excel
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
header('Content-type: text-html charset=utf-8'); | |
require_once __DIR__ . '/vendor/autoload.php'; | |
require_once __DIR__ . '/conf.php'; | |
require_once __DIR__ . '/class/timer.class.php'; | |
require_once __DIR__ . '/class/Database.class.php'; | |
require_once __DIR__ . '/class/Sql.class.php'; | |
Timer::start(); | |
$price_list = Sql::showParts(); | |
$objPHPExcel = new PHPExcel; // создаем экземпляр класса | |
$objPHPExcel->setActiveSheetIndex(0); // устанавливаем активный лист | |
//$objPHPExcel->createSheet(); // создаем еще один лист | |
$active_sheet = $objPHPExcel->getActiveSheet(); // пулучаем объект активного листа | |
$active_sheet->setTitle('Прайс-лист'); // устанавливаем название активного листа | |
$active_sheet->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE); // устанавливаем ориентацию //ORIENTATION_PORTRAIT | |
$active_sheet->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4); // устанавливаем размер | |
$active_sheet->getPageMargins()->setTop(2); // получаем доступ к отступам документа // устанавливаем отступы | |
$active_sheet->getPageMargins()->setRight(0); | |
$active_sheet->getPageMargins()->setLeft(0); | |
$active_sheet->getPageMargins()->setBottom(2); | |
$active_sheet->getHeaderFooter()->setOddHeader('&CШапка нашего прайс-листа'); // получаем доступ к шапке и футеру активного документа // и задаем шапку // &C - центр | |
$active_sheet->getHeaderFooter()->setOddFooter('&L&B' . $active_sheet->getTitle() . '&RСтраница &P из &N'); // получаем доступ к шапке и футеру активного документа // и задаем футер // &L&B - жирный текст с лева // &R - с права // &P - номер страницы // &N - количество страниц | |
$objPHPExcel->getDefaultStyle()->getFont()->setName('Arial'); // получаем доступ к настройкам по умолчанию // получаем доступ к шрифтам // устанавливаем шрифт по умолчанию | |
$objPHPExcel->getDefaultStyle()->getFont()->setSize(8); // получаем доступ к настройкам по умолчанию // устанавливаем размер шрифта | |
$active_sheet->getColumnDimension('A')->setWidth(7); // получаем доступ к изменению ширины столбца // устанавливаем шируну в N символьных единиц | |
$active_sheet->getColumnDimension('B')->setWidth(80); // получаем доступ к изменению ширины столбца // устанавливаем шируну в N символьных единиц | |
$active_sheet->getColumnDimension('C')->setWidth(10); // получаем доступ к изменению ширины столбца // устанавливаем шируну в N символьных единиц | |
$active_sheet->getColumnDimension('D')->setWidth(100); // получаем доступ к изменению ширины столбца // устанавливаем шируну в N символьных единиц | |
////////////////////////////////////////////////////////////// | |
$active_sheet->getRowDimension('1')->setRowHeight(40); // получаем доступ на изменении высоты строки // устанавливаем высоту строки | |
$active_sheet->mergeCells('A1:D1'); // метод который объединяет ячейки | |
$active_sheet->mergeCells('A2:D2'); // метод который объединяет ячейки | |
$active_sheet->mergeCells('A4:C4'); // метод который объединяет ячейки | |
$date = date('d-m-Y'); | |
$active_sheet->setCellValue('A1','ТЕХНО МИР'); | |
$active_sheet->setCellValue('A2','Компьютеры и комплектующие на любой вкус и цвет'); | |
$active_sheet->setCellValue('A4','Дата создания прайс-листа'); | |
$active_sheet->setCellValue('D4', $date); | |
$active_sheet->getStyle('D')->getNumberFormat()->getFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_XLSX14); // получаем стили ячейки // получаем доступ к типу данных ячейки // устанавливаем тип ячейки | |
$active_sheet->setCellValue('A6','номер'); // запись в ячейку | |
$active_sheet->setCellValue('B6','имя'); | |
$active_sheet->setCellValue('C6','цена'); | |
$active_sheet->setCellValue('D6','фото'); | |
////////////////////////////////////////////////////////////// | |
$row_start = 7; | |
$i = 0; | |
foreach ($price_list as $item) { | |
$row_next = $row_start + $i; | |
$active_sheet->setCellValue('A' . $row_next, $item['lot_id']); | |
$active_sheet->setCellValue('B' . $row_next, $item['make']); | |
$active_sheet->setCellValue('C' . $row_next, $item['price']); | |
$active_sheet->setCellValue('D' . $row_next, $item['photo']); | |
$i++; | |
} | |
////////////////////////////////////////////////////////////// | |
$style_wrap = [ | |
'borders' => [ | |
'outline' => [ | |
'style' => PHPExcel_Style_Border::BORDER_THICK | |
], | |
'allborders' => [ | |
'style' => PHPExcel_Style_Border::BORDER_THIN, | |
'color' => [ | |
'rgb' => '696969' | |
] | |
], | |
] | |
]; | |
$active_sheet->getStyle('A1:D' . ($i + 6))->applyFromArray($style_wrap); | |
//////////////////////////////////////////////////////////////////////////////////////////////////////////// | |
$style_header = [ | |
'font' => [ | |
'bold' => true, | |
'name' => 'Times New Roman', | |
'size' => 20 | |
], | |
'alignment' => [ | |
'horizontal' => PHPExcel_Style_ALIGNMENT::HORIZONTAL_CENTER, | |
'vertical' => PHPExcel_Style_ALIGNMENT::VERTICAL_CENTER | |
], | |
'fill' => [ | |
'type' => PHPExcel_STYLE_FILL::FILL_SOLID, 'color' => [ | |
'rgb' => 'CFCFCF' | |
] | |
] | |
]; | |
$active_sheet->getStyle('A1:D1')->applyFromArray($style_header); | |
//////////////////////////////////////////////////////////////////////////////////////////////////////////// | |
$style_slogan = [ | |
'font' => [ | |
'bold' => true, 'italic' => true, | |
'name' => 'Times New Roman', | |
'size' => 13, | |
'color' => [ | |
'rgb' => '8B8989' | |
] | |
], | |
'alignment' => [ | |
'horizontal' => PHPExcel_Style_ALIGNMENT::HORIZONTAL_CENTER, | |
'vertical' => PHPExcel_Style_ALIGNMENT::VERTICAL_CENTER | |
], | |
'fill' => [ | |
'type' => PHPExcel_STYLE_FILL::FILL_SOLID, | |
'color' => [ | |
'rgb' => 'CFCFCF' | |
] | |
], | |
'borders' => [ | |
'bottom' => [ | |
'style' => PHPExcel_Style_Border::BORDER_THICK | |
] | |
] | |
]; | |
$active_sheet->getStyle('A2:D2')->applyFromArray($style_slogan); | |
//////////////////////////////////////////////////////////////////////////////////////////////////////////// | |
$style_tdate = [ | |
'alignment' => [ | |
'horizontal' => PHPExcel_Style_ALIGNMENT::HORIZONTAL_RIGHT, | |
], | |
'fill' => [ | |
'type' => PHPExcel_STYLE_FILL::FILL_SOLID, | |
'color' => [ | |
'rgb' => 'CFCFCF' | |
] | |
], | |
'borders' => [ | |
'right' => [ | |
'style' => PHPExcel_Style_Border::BORDER_NONE | |
] | |
] | |
]; | |
$active_sheet->getStyle('A4:C4')->applyFromArray($style_tdate); | |
//////////////////////////////////////////////////////////////////////////////////////////////////////////// | |
$style_date = [ | |
'fill' => [ | |
'type' => PHPExcel_STYLE_FILL::FILL_SOLID, | |
'color' => [ | |
'rgb' => 'CFCFCF' | |
] | |
], | |
'borders' => [ | |
'left' => [ | |
'style' => PHPExcel_Style_Border::BORDER_NONE | |
] | |
] | |
]; | |
$active_sheet->getStyle('D4')->applyFromArray($style_date); | |
//////////////////////////////////////////////////////////////////////////////////////////////////////////// | |
$style_hprice = [ | |
'font' => [ | |
'bold' => true, | |
'italic' => true, | |
'name' => 'Times New Roman', | |
'size' => 10, | |
], | |
'alignment' => [ | |
'horizontal' => PHPExcel_Style_ALIGNMENT::HORIZONTAL_CENTER, | |
], | |
'fill' => [ | |
'type' => PHPExcel_STYLE_FILL::FILL_SOLID, | |
'color' => [ | |
'rgb' => 'CFCFCF' | |
] | |
], | |
'borders' => [ | |
'right' => [ | |
'style' => PHPExcel_Style_Border::BORDER_NONE | |
] | |
] | |
]; | |
$active_sheet->getStyle('A6:D6')->applyFromArray($style_hprice); | |
//////////////////////////////////////////////////////////////////////////////////////////////////////////// | |
$style_price = [ | |
'alignment' => [ | |
'horizontal' => PHPExcel_Style_ALIGNMENT::HORIZONTAL_RIGHT | |
] | |
]; | |
$active_sheet->getStyle('A7:D' . ($i + 6))->applyFromArray($style_price); | |
//////////////////////////////////////////////////////////////////////////////////////////////////////////// | |
header('Content-type: application/vnd.ms-excel'); | |
header('Content-Disposition: attachment; filename=simple.xls'); | |
$objWrapper = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); // Генерируем документ с нужной версией | |
$objWrapper->save('php://output'); // сохраняем готовый сгенерированный документ // отдаем пользователю на скачивание (php://output) | |
exit(); | |
Timer::finish(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment