Здравствуйте! Возникла следующая задача. Заказчик затребовал создать файл-приложение к письму которое приходит админу, чтобы загружать в старую 1с 7.7 данные по заказу. Поскольку со шлюзами старая 1с не дружит, было принято решение создать такое вот своеобразное приложение к письму в excel. Готовых модулей по этой теме я не нашел, но нашел на просторах инета код, который создавал нечто похожее. Клиенту было нужно, чтобы в этом экселе выгружались товары списком, и я добавил "product" =>$product['name'], . Проблема в том, что данный код создает excel, но там всего две строки (заголовок и одна строка с товаром). Подскажите, как сделать чтобы строк было много, и на каждой строке был товар в столбец?
$data = array(
array("ORDER ID" => $order_id,
"CONTACT PERSON"=>$order_info['shipping_firstname']." ".$order_info['shipping_lastname'],
"ADDRESS LINE1" =>$order_info['shipping_address_1'],
"CITY" =>$order_info['shipping_city'],
"PHONE_1"=>$order_info['telephone'],
"product" =>$product['name'],
"price" =>$product['price'],
"WH NUMBER" =>$product['model'],
"SKU" =>$product['sku'],
"PIECES"=>$product['quantity'],
"Total"=>$order_info['total']),
);
function filterData(&$str)
{
$str = preg_replace("/\t/", "\\t", $str);
$str = preg_replace("/\r?\n/", "\\n", $str);
$str = iconv("UTF-8", "WINDOWS-1251", $str);
if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"';
}
// file name for download
$fileName = $order_id.".xls";$flag = false;
foreach($data as $row) {
if(!$flag) {
// display column names as first row
echo implode("\t", array_keys($row)) . "\r\n";
$flag = true;
}
// filter data
array_walk($row, 'filterData');
$rows= implode("\t", array_keys($row)) . "\r\n" . implode("\t", array_values($row)) . "\r\n";file_put_contents( $fileName, $rows);
}
$mail->setTo('email of delivery company or any you need');
$mail->setFrom($this->config->get('config_email'));
$mail->setSender(html_entity_decode($order_info['store_name'], ENT_QUOTES, 'WIN-1251'));
$mail->setSubject(html_entity_decode($subject, ENT_QUOTES, 'WIN-1251'));
$mail->setHtml($this->load->view('mail/excel', $data));
$mail->setText($text);
$mail->send();