У меня была такая же проблема, я проверил сайт php.net. И нашел правильный формат.
Это мой обновленный код.
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: ' . $fromName . ' <' . $fromEmail .'>' . " \r\n" .
'Reply-To: '. $fromEmail . "\r\n" .
'X-Mailer: PHP/' . phpversion();
\ r \ n должны быть в двойные кавычки (") , одинарные кавычки (') не будут работа.
Вы думали о используя реальное решение для отчетности? Какой у вас бэкэнд БД? Если вы используете MSSQL 2000 или выше, существует довольно приличное решение для создания отчетов, которое вы можете использовать бесплатно. Службы отчетов SQL Server .
Похоже, отчеты тратят большую часть своего времени на форматирование ячеек. Это может быть причиной того, что отчеты кажутся такими медленными, а настольное приложение - нет.
В качестве альтернативы, если вы знаете форматирование заранее и оно довольно статично, вы можете предварительно отформатировать листы, чтобы сократить часть работы. .
Я тоже брошу туда это. Большинство решений для отчетности допускают условное форматирование и т.п., но поскольку они предназначены для работы, такая производительность будет намного лучше, чем при использовании Excel.
несколько часов - это смешно для отчета.
Если проблема заключается в VBA, купите «Professional Excel Development» (Стивен Буллен, Роб Бови и др.): У него есть бесплатный профилировщик VBA под названием PerfMon .
Если проблема заключается в вычислении Excel, см. http://msdn.microsoft.com/en-us/library/aa730921.aspx?ppud=4
Но я предполагаю, что проблема в высоком накладные расходы, связанные со ссылками на объекты ячейка за ячейкой: вы всегда должны работать одновременно с большими блоками ячеек.
Это не рекомендация профилировщика, а предложение для ускорения работы макросов Excel, которые тратят свое время на обновление экрана. У меня были отличные результаты, отключив обновление экрана во время работы макроса: установите Application.ScreenUpdating = False и также используя ряд других аналогичных настроек . Просто не забудьте снова включить их, когда макрос завершит работу: P
Это не бесплатно, но вы можете профилировать с помощью этого. Я подозреваю, что демоверсия будет соответствовать вашим потребностям: http://www.aivosto.com/vbwatch.html
Похоже, что код VBA (или код VB, который записывает на листы) делает это построчно, это может занять много времени и это плохой дизайн. Пишите в Excel как вариант за один раз. Отформатируйте лист после того, как все данные будут импортированы. Спасибо Росс