Php到csv导出,在单独的单元格中使用逗号分隔符
我在这里找到了这个代码,我应该在我的网站上使用它。但,尽管一切看起来都很好,但不知何故,分隔符不起作用。如您所见,我将逗号作为分隔符,当mysql中有分隔符时,我将其再次更改为逗号,以便在单元格中分隔 但是,我得到了一个结果,所有的东西都在第一个单元格中。有逗号,但没有拆分。所以,如果我在excel数据>分隔符中单击并用逗号分隔,那么就可以了 如何解决这个问题?我是新来的,所以这里有一个简单的具体变化吗Php到csv导出,在单独的单元格中使用逗号分隔符,php,mysql,excel,csv,export,Php,Mysql,Excel,Csv,Export,我在这里找到了这个代码,我应该在我的网站上使用它。但,尽管一切看起来都很好,但不知何故,分隔符不起作用。如您所见,我将逗号作为分隔符,当mysql中有分隔符时,我将其再次更改为逗号,以便在单元格中分隔 但是,我得到了一个结果,所有的东西都在第一个单元格中。有逗号,但没有拆分。所以,如果我在excel数据>分隔符中单击并用逗号分隔,那么就可以了 如何解决这个问题?我是新来的,所以这里有一个简单的具体变化吗 $link = mysql_connect($host, $user, $pass) or
$link = mysql_connect($host, $user, $pass) or die("Can not connect." . mysql_error());
mysql_select_db($db) or die("Can not connect.");
$result = mysql_query("SHOW COLUMNS FROM ".$table."");
$columnName = array();
if (mysql_num_rows($result) > 0)
{
while ($row = mysql_fetch_assoc($result))
{
$columnName[] = $row['Field'];
$i++;
}
}
$columnName[] .= "\n";
$needle = "|";
$values = mysql_query("SELECT * FROM ".$table." where id=".$id."");
while ($rowr = mysql_fetch_row($values))
{
for ($j=0;$j<$i;$j++)
{
$colName = $columnName[$j];
$count = strlen($rowr[$j]) - strlen(str_replace(str_split($needle), "", $rowr[$j]));
if ($count > 1)
{
for($p=0;$p<$count;$p++)
{
$colName .= ",";
}
$columnName[$j] = $colName;
$csv_output_column_names .= $columnName[$j].", ";
$csv_output_column_values .= str_replace("|",",",$rowr[$j]).", ";
}
else
{
$csv_output_column_names .= $columnName[$j]. ", ";
$csv_output_column_values .= $rowr[$j] .", ";
}
}
$csv_output_column_values .= "\n";
}
$csv_output = $csv_output_column_names."\n".$csv_output_column_values;
$filename = $file."_".date("Y-m-d");
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header("Content-disposition: filename=".$filename.".csv");
print $csv_output;
exit;
?>
不要手动生成CSV文件。PHP有内置函数来完成这项工作:是的,我尝试过这个解决方案,但上面的代码没有成功,或者我不知道如何调整它。@user3392725您的代码对我来说很好。。