“如何修复”;“标签”;在Excel导出(PHP)中?

“如何修复”;“标签”;在Excel导出(PHP)中?,php,excel,encoding,delimiter,separator,Php,Excel,Encoding,Delimiter,Separator,我申请解决一个编码问题,我将文件导出到.CSV和Excel,它成功地工作了,但现在出现了另一个问题: 我在PHP中用作Excel文件分隔符的选项卡(“\t”)停止工作。在我解决前一个问题之前,它一直在工作。当我打开excel文件时,它显示如下: “Columnaco”和“ColumnC”(合在一起) 如果将其导出为csv('Content-type:text/csv;charset=UTF-8'),我会成功,但不会导出为Excel(Content-type:application/vnd.ms-

我申请解决一个编码问题,我将文件导出到.CSV和Excel,它成功地工作了,但现在出现了另一个问题:

我在PHP中用作Excel文件分隔符的选项卡(“\t”)停止工作。在我解决前一个问题之前,它一直在工作。当我打开excel文件时,它显示如下:

“Columnaco”和“ColumnC”(合在一起)

如果将其导出为csv
('Content-type:text/csv;charset=UTF-8'
),我会成功,但不会导出为Excel(
Content-type:application/vnd.ms-Excel;charset=UTF-8

有什么解决办法吗


注意:使用“,”作为分隔符对我来说不是一个好的解决方案,因为我在某些字段中有带“,”的值。

如果字符串字段中有逗号,并且希望使用逗号作为分隔符,则将字符串括在引号中。。。CSV文件就是这样工作的

所以我的假设是,您没有使用PHP的内置函数来创建csv文件,否则您已经知道了。。。为什么不考虑使用它,因为它处理了所有你似乎都不知道的小复杂事物。 请注意,Excel csv文件确实使用一个选项卡,并且通常使用BOM编码为UTF-16LE,而不是UTF-8;并且不需要在content-type头中标识字符集

我在PHP中用作Excel文件分隔符的选项卡(“\t”)停止工作

是的,没错

尽管如此,仍然有一种导出到Excel的简单方法

使用带有
的表,这样做很好

例如:

<?php
    header("Content-Type: text/plain");
    echo "<table border='1'>";
    echo "<tr>";
    echo "<th>Name</th>";
    echo "<th>First Name</th>";
    echo "<th>Department</th>";
    echo "<th>Date</th>";
    echo "<th>Topic</th>";
    echo "<th>State</th>";
    echo "<th>E-mail</th>";
    echo "<th>Place</th>";
    echo "<th>Registration fee</th>";
    echo '</tr>';
    echo '</table>';
    header("Content-disposition: attachment; filename=example_export_to_excel.xls");
    }
?>

这非常适合导出到excel。 这里不需要库,为什么要把复杂的事情看得尽可能简单呢