Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Генерация exel заказа при отправке писма


droids

Recommended Posts

Здравствуйте есть код  генерации  exel файла как правильно вставить его в /catalog/model/checkout/order.php чтобы он работал(пытался вставить у меня не получилось)
Библиотека phpexel находится в /catalog/model/checkout . Код работает если его запускают в отдельным файлом напрямую. Необходимо сделать вообще отправку  exel файла к письму администратору

require_once 'Classes/PHPExcel.php';

//$price_list = get_price();

$objPHPExcel = new PHPEXcel();

$objPHPExcel->setActiveSheetIndex(0);

//$objPHPExcel->createSheet();

$active_sheet = $objPHPExcel->getActiveSheet();

$active_sheet->getPageSetup()
			->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT);
			
$active_sheet->getPageSetup()
			->SetPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);
			
			
$active_sheet->getPageMargins()->setTop(1);
$active_sheet->getPageMargins()->setRight(0.75);
$active_sheet->getPageMargins()->setLeft(0.75);
$active_sheet->getPageMargins()->setBottom(1);

$active_sheet->setTitle("Прайс лист");	


$objPHPExcel->getDefaultStyle()->getFont()->setName('Arial');
$objPHPExcel->getDefaultStyle()->getFont()->setSize(11);	


$active_sheet->getColumnDimension('A')->setWidth(15);
$active_sheet->getColumnDimension('B')->setWidth(20);
$active_sheet->getColumnDimension('C')->setWidth(10);
$active_sheet->getColumnDimension('D')->setWidth(10);

$active_sheet->mergeCells('A1:E1');
$active_sheet->setCellValue('A1','Информация о заказе');

$style_wrap = array(
	'borders'=>array(
		'outline' => array(
			'style'=>PHPExcel_Style_Border::BORDER_THICK
		),
		'allborders'=>array(
			'style'=>PHPExcel_Style_Border::BORDER_THIN,
			'color' => array(
				'rgb'=>'696969'
			)
		)
	
	)


);

//$active_sheet->getStyle('A1:D'.($i+6))->applyFromArray($style_wrap);


$active_sheet->setCellValue('A2','Номер заказа');
$active_sheet->setCellValue('A3','Дата заказа');
$active_sheet->setCellValue('A4','Способ доставки');
$active_sheet->setCellValue('A5','Предоплата');
$active_sheet->setCellValue('A6','ФИО');
$active_sheet->setCellValue('A7','Телефон');
$active_sheet->setCellValue('A8','Индекс');
$active_sheet->setCellValue('A9','Область');
$active_sheet->setCellValue('A10','Город');
$active_sheet->setCellValue('A11','Адрес');


$active_sheet->mergeCells('B2:E2');
$active_sheet->mergeCells('B3:E3');
$active_sheet->mergeCells('B4:E4');
$active_sheet->mergeCells('B5:E5');
$active_sheet->mergeCells('B6:E6');
$active_sheet->mergeCells('B7:E7');
$active_sheet->mergeCells('B8:E8');
$active_sheet->mergeCells('B9:E9');
$active_sheet->mergeCells('B10:E10');
$active_sheet->mergeCells('B11:E11');


$style_header = array(
	'font'=>array(
		'bold' => true,
		'name' => 'Calibri',
		'size' => 14
	),
	'alignment' => array(
		'horizontal' => PHPExcel_STYLE_ALIGNMENT::HORIZONTAL_CENTER,
		'vertical' => PHPExcel_STYLE_ALIGNMENT::VERTICAL_CENTER,
	),
	'fill' => array(
		'type' => PHPExcel_STYLE_FILL::FILL_SOLID,
		'color'=>array(
			'rgb' => 'CFCFCF'
		)
	)


);

$active_sheet->mergeCells('A13:E13');
$active_sheet->setCellValue('A13','Детали заказа');

$active_sheet->getStyle('A1:E1')->applyFromArray($style_header);
$active_sheet->getStyle('A13:E13')->applyFromArray($style_header);



$active_sheet->setCellValue('A14','Артикул');
$active_sheet->setCellValue('B14','Наименование');
$active_sheet->setCellValue('C14','Цена');
$active_sheet->setCellValue('D14','Кол-во');
$active_sheet->setCellValue('E14','Сумма');

$style_slogan = array(
	'fill' => array(
'type' => PHPExcel_STYLE_FILL::FILL_SOLID,

		 'color'=>array(
			'rgb' => 'f7fafc'

		)

	
	)


);

$active_sheet->getStyle('A14:E14')->applyFromArray($style_slogan);


$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
//header('Content-Type: application/vnd.ms-excel');
//header('Content-Disposition: attachment;filename="stat.xls"');
//header('Cache-Control: max-age=0');
//$objWriter->save('php://output');
$objWriter->save(str_replace('.php', '.xlsx', "stat.xls"));  

 

Надіслати
Поділитися на інших сайтах


1 час назад, Mazaaa сказал:

обернуть в функцию и сделать ее вызов при успешном заказе - к примеру success php 

Можно уточнить где делать ее вызов? В каком файле?

Надіслати
Поділитися на інших сайтах


17 часов назад, droids сказал:

Можно уточнить где делать ее вызов? В каком файле?

Да в том же

и будет что-то типа $this->generateExcel

Надіслати
Поділитися на інших сайтах

В 31.12.2018 в 11:20, spectre сказал:

Да в том же

и будет что-то типа $this->generateExcel

Обернул в public функцию и вызвал  $this->excel_gen(); но почему то не отрабатывает и файл не создается в локальной категории.И не пойму почему пытался вызвать в фунции addOrderHistory(). И не знаю в чем может быть проблема. В отдельном файле без проблем все отрабатывает.

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.