导出到XLS单元格时如何使宽度适合内容

时间:2017-11-28 08:17:50

标签: php html excel export-to-excel

我有一个代码可以将HTML表转换为XLS格式,如下所示:

$fileNameXls = 'report.xls'; 
$result = "
<table>
  <tr>
    <th>Brand</th>
    <th>Heroes</th>
  </tr>
  <tr>
    <td> Marvel </td>
    <td> Spiderman, Batman, Power Ranger, Power Puffgirl, and booya </td>
  </tr>
</table>
";


$result = $header.$body;
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=$fileNameXls");
echo $result;

问题是,当我打开XLS文件时,包含HTML表格中的行的单元格似乎有一个固定的宽度,并且宽度不跟随行内容宽度,因此它会像这样重叠:

example

1 个答案:

答案 0 :(得分:-1)

真正的问题是您没有保存XLS文件,它仍然是HTML但具有XLS扩展名。 MS Excel仅显示html文件,当您打开文件时,您可能还会收到警告,提示文件格式无效。

对于真实的Excel文件,您应该使用PHPExcelEasyXLS之类的Excel库,并且可以自动调整列宽以适合单元格内容。我还建议您使用最新的XLSX Excel文件格式,而不是旧的XLS文件格式。

您可以尝试使用代码的最佳方法是为标记设置近似的列宽。