0

我正在创建一个 csv 文件,如下所示

   $user_rep=Engine_Db_Table::getDefaultAdapter()->select()
                  ->from('engine4_users',array('user_id','email','displayname'))
                 ->query()->fetchAll();

   $csv_output .= "UserId Email Name"; 
    $csv_output .= "\n"; 

    foreach($user_rep as $key)
    {
        $csv_output .=$key['user_id']." ".$key['email']." ".$key['displayname'];
        $csv_output .= "\n"; 
    }


$filename = $file."_".date("d-m-Y_H-i",time()); // il nome del file sara' composto da quello scelto all'inizio e la data ed ora oggi

 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 文件。但我的数据上确实有空格作为名称。所以我越来越喜欢

在此处输入图像描述

实际上,名称是“测试智能代码”。我想在一个列上。我们怎样才能做到这一点?

4

3 回答 3

2

尝试像下面这样放置 commo (,)

$csv_output .=$key['user_id'].",".$key['email'].",".$key['displayname'];
于 2012-12-26T12:32:37.853 回答
1

其实,CSV是一个Comma Separated File。对于写入文件,您可以使用fputcsv

如果你想直接输出它,只需使用:

$buffer = fopen('php://temp', 'r+');
fputcsv($buffer, $user_rep);
rewind($buffer);
$csv = fgets($buffer);
fclose($buffer);

echo $csv;
于 2012-12-26T12:31:56.433 回答
1

您可以对列使用其他分隔符。现在您使用空格,然后 Excel 用空格分隔所有文本。

您可以将文本包含在引号中,然后 Excel 可以将其解析为一个字段。

例如试试这个:

$csv_output .= "\"".$key['user_id']."\" \"".$key['email']."\" \"".$key['displayname']."\"";
于 2012-12-26T12:37:52.927 回答