修改代码以将HTML表导出到Excel

时间:2015-10-03 07:20:58

标签: php excel html-table phpexcel

我在我的应用程序中使用PHPExcel 1.8。我想要做的是下载我的文件generated.html,这就是内容。

<!DOCTYPE html>
<html>
<head>
  <title>PHPExcel</title>
<style>
table, td, th {
  border: 1px solid black;
}

</style>
</head>
<body>
<table style="width:100%">
  <tr>
    <td bgcolor="#FF0000">Jill</td>
    <td>Smith</td>    
    <td>50</td>
  </tr>
  <tr>
    <td>Jack</td>
    <td>Paper</td>    
    <td>123</td>
  </tr>
  <tr>
    <td>Eve</td>
    <td>Jackson</td>    
    <td>94</td>
  </tr>
  <tr>
    <td bgcolor="#FF0000">John</td>
    <td>Doe</td>    
    <td>80</td>
  </tr>
</table>
</body>
</html>

目前,我有dl.php来执行下载,但example.xls没有应用样式和颜色。

<?php

require_once 'PHPExcel-1.8/Classes/PHPExcel.php';

$objReader = new PHPExcel_Reader_HTML();
$objPHPExcel = @$objReader->load($file_path.'generated.html');

header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="example.xls"');
header('Cache-Control: max-age=0');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');

我应该做些什么修改?

1 个答案:

答案 0 :(得分:2)

我认为,PHPexcel不支持CSS和样式。以下是直接执行此操作的示例代码。

这是我的excel.php文件,下载此文件中生成的表格。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
<title>TESTING</title>
</head>
<style type="text/css">
    body {
        font-family:Verdana, Arial, Helvetica, sans-serif;
        font-size:12px;
        margin:0px;
        padding:0px;
    }
</style>
<html>
<body>
<?php
    $table = '<table border="0" cellpadding="0" cellspacing="0"><tr><td>';
    $table .= '<tr><td rowspan="2" style="background-color:#000099;color:#FFFFFF;">test</td>';
    $table .= '<td colspan="2" style="background-color:#FFFF33">TEst</td>';
    $table .= '<td colspan="2" style="background-color:#FFFF33">teST</td>';
    $table .= '<td rowspan="2" style="background-color:#000099;">Test<br>test</td>';
    $table .= '</tr><tr><td style="background-color:#FFFCCC">Test</td>';
    $table .= '<td style="background-color:#FFFCCC">test</td>';
    $table .= '<td style="background-color:#FFFCCC">test</td>';
    $table .= '<td style="background-color:#FFFCCC">test</td>';
    $table .= '</tr><tr></td></tr></table>';

    header("Content-type: application/x-msdownload"); 
    header('Content-Disposition: attachment; filename="filename.xls"');
    header("Pragma: no-cache");
    header("Expires: 0");
    echo $table;
?>
</body>
</html>