Глюк при экспорте таблицы в эксель

akxxiv

Новичок
Глюк при экспорте таблицы в эксель

Доброе время суток.

Ни кто не наблюдал такую штуку? Рисую таблицу с данными и отдаю ее с заголовками Excel, кодировку ставлю windows-1251, однако если в ячейках присутствует дата в формате "d.m.Y" или "d.m.Y H:i", то ИНОГДА эксель сам меняет кодировку на въетнамскую windows-1258 и естественно вся кириллица выводится кракозябрами.

Т.е.

PHP:
<?
	header("Content-Type: application/x-msexcel; charset=windows-1251; format=attachment;");
    	header("Content-Disposition: attachment; filename=export.xls" );
   	header("Expires: 0");
    	header("Cache-Control: must-revalidate, post-check=0,pre-check=0");
    	header("Pragma: public");
?>

<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; windows-1251" />
</head>
<body>
<table cellpadding="3" cellspacing="0" border="1">
		<tr>
			<th>п/п</th>
			<th>Номер</th>
			<th>Дата приезда план.</th>
			<th>Дата приезда факт.</th>
			<th>Дата загрузки план.</th>
			<th>Дата загрузки факт.</th>
			<th>Дата отгрузки план.</th>
			<th>Дата отгрузки факт.</th>
			<th>Маршрут следования</th>
			<th>Экспедитор</th>
			<th>Статус</th>
		</tr>
<? if( ! empty($rows) ): ?>
	<? foreach( $rows as $k=>$v ): ?>
		<tr>
			<td><?=$k+1 ?></td>
			<td><?=$v['id'] ?></td>
			<td><?=date("d-m-Y H:i", strtotime($v['date_come_plan']))  ?></td>
			<td><?=date("d-m-Y H:i", strtotime($v['date_come_real']))  ?></td>
			<td><?=date("d-m-Y H:i", strtotime($v['date_loading_plan']))  ?></td>
			<td><?=date("d-m-Y H:i", strtotime($v['date_loading_real']))  ?></td>
			<td><?=date("d-m-Y H:i", strtotime($v['date_shipping_plan']))  ?></td>
			<td><?=date("d-m-Y H:i", strtotime($v['date_shipping']))  ?></td>
			<td><?=join("; ", $v['way']['names']) ?></td>
			<td><?=$v['np_name'] ?></td>
			<td><?=$v['status'] ?></td>
		</tr>
	<? endforeach ?>	
<? endif ?>	
	
</table>
</body>
</html>
Все данные в кодировке windows-1251. Но при этом Эксель воспринимает как windows-1258. Если убрать вывод всехдат,то все выводится в нормальной кодировке.

Кто-нибудь знает как это лечится?
 

vovanium

Новичок
что-то ты пишешь про формат даты через точку, а в самом скрипте дата через тире, что в принципе в русском не принято
 

akxxiv

Новичок
Извиняюсь. Торможу!!!!!!!1
не правильно тэг вбил
<meta http-equiv=Content-Type content="text/html; charset=windows-1251">
 

akxxiv

Новичок
vovanium
Это я не оттуда скопировал. Это значения в данном случае не имеет. Эксель сам переопределяет формат даты
 

findnext

Новичок
кодировка екселя зависит от windows, формат тоже. Control Panel->Regional and language settings->customize this format
 

kvf77

Red Devil
Делаю обычно проще - делаю шаблон вывода в экселе и экспорт потом в HTML, эксель конечно гадость сделает, но почистив остается четкий правильный шаблон - его и заполняю.
 
Сверху