格式化文本以适合Excel中的列

时间:2014-04-24 07:06:57

标签: php excel csv

我在数组中有这个文本块:

"Stefan Olsson"
"Kungsvägen"
"Skolgatan"
xxxx-xx-xx
0735xxxxxx,
"Pär Davidsson"
"Skolgatan"
"Myntvägen"
xxxx-xx-xx
0709xxxxxx,

我将此类内容解析为CSV文件,以便以后在Excel中使用。但是,我想将此文本填充到excell中的不同列中。因此,当我在Execel中打开CSV文件时,我希望名称在一列中,除了etcetc之外的列中的地址。我怎么能做到这一点?我应该使用PHPExcel吗?或者可以用普通的旧PHP来完成?

这是我的PHP代码

$gatunamn = $_POST['gata'];
$ort = $_POST['omrade'];
$csv_data = array();



$newSpider->fetchPage($gatunamn, $ort, $offset=0);
$obj = json_decode($newSpider->html);


echo "<div id='rightcontent'><table id='one-column-emphasis'>";
echo "<th><input type='checkbox' name='csv_all' id='csv_all'></th><th>Namn</th><th>Adress</th><th>Adress2</th><th>Adress3</th><th>Personnummer</th><th>Telefonnummer</th><th>Telefonnummer2</th>";
$antal_sidor = round($obj->search->wp->totalHits / $obj->search->wp->pageSize); 
echo "<td></td>";
foreach($obj->search->wp->features as $fish) //Loopar ut 50st (pageSize)
{
    echo "<tr>";
    echo "<td><input type='checkbox' value='csv' class='csv'></td>";
    echo "<td>" . $fish->name . "</td>";
    $csv_data[] .= utf8_decode($fish->name);

    foreach($fish->addresses as $ad)
    {
        echo "<td>" . $ad->label . " " . $ad->postcode . " " . $ad->area . "</td>";
        $csv_data[] .= utf8_decode($ad->label . " " . $ad->postcode . " " . $ad->area);
    }   
    if(!empty($fish->dateOfBirth))
    {
        $convert_date = substr($fish->dateOfBirth, 0, -3); //Gör om datum från timestamp
        echo "<td>" . date("Y-m-d", $convert_date) . "</td>";
        $convert_datee = date("Y-m-d", $convert_date);
        $csv_data[] .= $convert_datee;


    }
    if(!empty($fish->phoneNumbers))
    {
        foreach($fish->phoneNumbers as $ph)
        {
            echo "<td>" . $ph . "</td>";
            $csv_data[] .= $ph . ",";

        }
    }       

    echo "</tr>";

}
echo "</table>";
$j = 0;
for($i = 1; $i <= $antal_sidor; $i++)
{
    echo  "<a href='curl2.php?gatunamn=$gatunamn&ort=$ort&offset=$j'>" . $i . "</a> ";
    $j += 100;
}
echo "</div>";
echo "<div id='debug'><pre>";   
    var_dump($csv_data);
echo "</pre></div>";

}
if(isset($_POST['export']))
{

    $fp = fopen("eniroo.csv","w");
    foreach(explode(",", implode("\n",$csv_data)) as $rad) {
       fputcsv($fp, array(implode(',', str_getcsv($rad, "\n"))));
    }
    echo "<div id='csv_info'>";
    echo "<a href='eniro.csv'>Hämta CSV-fil</a>";
    echo "</div>";


}

1 个答案:

答案 0 :(得分:0)

// Restructure the original array into rows
$myDataArray = array_chunk($myDataArray, 5);

// Then write to CSV
$fp = fopen('file.csv', 'w');
foreach($myDataArray as $dataRow) {
    fputcsv($fh, $dataRow);
}
fclose($fh)