导出到XLS单元格时如何将宽度与内容匹配

我有一个代码将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表格中行的单元格似乎有一个固定的宽度,并且宽度不跟随行内容宽度,因此它变得如此重叠:

例

真正的问题是,你没有保存一个XLS文件,它仍然是一个HTML,但扩展名为XLS。 MS Excel只显示HTML文件,并且您可能还会收到警告,指出在打开文件时文件格式无效。

对于真正的Excel文件,您应该使用ExcelExcel库,如PHPExcel或EasyXLS,并且可以自动调整列宽以适应单元格内容。 我还build议您使用最新的XLSX Excel文件格式,而不是旧的XLS文件格式。

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