Довольно простая задача, сохранить данные из php в csv, в интерне море примеров, но все они используют как разделитель ";". Мой XL упорно не понимает такого, и ждет "," как разделитель.
Оставлю для себя небольшую памятку.
     
		
	
		Файл скрипта должен быть в UTF.
 
<?php
$aProducts = [
    [
        'id' => '150',
        'name' => 'Test #1',
        'category' => 'Категория 1',
        'price' => '10000',
    ],
    [
        'id' => '151',
        'name' => 'Тест №1',
        'category' => 'Категория 1',
        'price' => '20000',
    ],
    [
        'id' => '152',
        'name' => 'Тест №2',
        'category' => 'Категория 1',
        'price' => '30000',
    ],
];
function array2csv($sFileName, $aIn, $sSeparator = ',') {
    $fh = fopen($sFileName, 'w');
    fputs($fh, chr(0xEF) . chr(0xBB) . chr(0xBF));
    foreach($aIn as $val) {
        fputcsv($fh, $val, $sSeparator);
    }
    fclose($fh);
}
array2csv(__DIR__ . '/test.csv', $aProducts);