0

データをcsvファイルにエクスポートして、ユーザーにダウンロードさせようとしています。fputcsv() 関数を使用していますが、ファイルでは、データは隣接するセルではなく単一のセルに書き込まれます。何が問題なのかわからない。私を助けてください。ここに私のコードがあります

session_start();
header('Content-Type: application/csv');
header('Content-Disposition: attachement; filename=report_'.time().'.csv;');
$data = $_SESSION['data'];
$file = fopen('php://output','w');
foreach($data as $i=>$value)
{
    fputcsv($file, $value,";");
}
fclose($file);

そして、これはファイルがどのように見えるかです..

そして、これはファイルがどのように見えるかです..

4

2 に答える 2

1

for,の代わりに使用;delimiter

に置き換えfputcsv($file, $value,";");fputcsv($file, $value, ",");試してください

例:

header('Content-Type: application/csv');
header('Content-Disposition: attachement; filename=report_'.time().'.csv;');
$data = array(array('one' => 1, 'two' => 2));
$file = fopen('php://output','w');
foreach($data as $i => $value)
{
    //fputcsv($file, $value, ";");
    fputcsv($file, $value, ",");
}
fclose($file);
于 2014-04-29T11:55:09.573 に答える
1

のようにしてみてください

 $data = array (
    'aaa,bbb,ccc,dddd',
    '123,456,789',
    '"aaa","bbb"');
$fp = fopen('php://output', 'w+'); 
header('Content-type: application/octet-stream');  
header('Content-disposition: attachment; filename="data.csv"'); 
foreach($data as $line){
    $val = explode(",",$line);
    fputcsv($fp, $val);
}
fclose($fp);

またはあなたのデータに従っているかもしれません

foreach($data as $i=>$value)
{
    fputcsv($file, $value);
}
于 2014-04-29T11:52:33.777 に答える