HTML ТАБЛИЦЫ EXCEL PHP MYSQL - PullRequest
0 голосов
/ 28 июня 2011

Я пытаюсь экспортировать данные MySQL в Excel. Я пробовал класс phpexcel и не могу использовать его на своем хосте, так как на нем не установлена ​​функция zip. Я не могу экспортировать данные в csv, так как клиент «хочет видеть цвета цвета ...», поэтому форматирование обязательно. Похоже, я застрял в создании таблицы для передачи в Excel. (если у кого-то нет идей по поводу других классов!)

У меня проблема с кодом, он отлично экспортируется, и форматирование корректно для первой строки. Во всех последующих строках все данные «сбрасываются» в одну ячейку. Вот код:

$table .= '<table border="0" cellpadding="0" cellspacing="0"><tr>'; 
        $table .= '<td style="background-color:#000099;color:#FFFFFF;">Date</td>';
        $table .= '<td style="background-color:#000099;color:#FFFFFF;">Name</td>';
        $table .= '<td style="background-color:#000099;color:#FFFFFF;">Address</td>';
        $table .= '<td style="background-color:#000099;color:#FFFFFF;">City</td>';
        $table .= '</tr>';
        while($row=mysql_fetch_array($result)){
        $table .= '<tr>';
        $table .= '<td style="background-color:#FFFCCC">'.$row['date'].'</td>';
        $table .= '<td style="background-color:#FFFCCC">'.$row['name'].'</td>';
        $table .= '<td style="background-color:#FFFCCC">'.$row['address'].'</td>';
        $table .= '<td style="background-color:#FFFCCC">'.$row['city'].'</td>';
        $table .= '</tr>';
        $table .= '</table>';
        }
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");;
header("Content-Disposition: attachment;filename=Itinerary-$today.xls "); 
header("Content-Transfer-Encoding: binary ");
echo $table;

Цените любые мысли, которыми кто-либо может поделиться на эту тему!

Ответы [ 3 ]

3 голосов
/ 28 июня 2011

Попробуйте переместить эту строку:

$table .= '</table>';

за пределы цикла.

Последние несколько строк цикла должны выглядеть так:

    $table .= '</tr>';
}
$table .= '</table>';

Вы открылитаблица до цикла, вы должны закрыть таблицу после цикла.

0 голосов
/ 28 июня 2011

Вы закрываете стол не в том месте.

Это должно быть за пределами while.

0 голосов
/ 28 июня 2011

Экспортируйте его с помощью CSV, а затем импортируйте его на свой локальный хост, теперь реэкспортируйте его и получите красивые функции экспортаМожет быть, вам нужно установить LAMP-стек на вашем компьютере, что удобно в любом случае.

...