Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 设置文本格式以适应Excel中的列_Php_Excel_Csv - Fatal编程技术网

Php 设置文本格式以适应Excel中的列

Php 设置文本格式以适应Excel中的列,php,excel,csv,Php,Excel,Csv,我将此文本块放在一个数组中: "Stefan Olsson" "Kungsvägen" "Skolgatan" xxxx-xx-xx 0735xxxxxx, "Pär Davidsson" "Skolgatan" "Myntvägen" xxxx-xx-xx 0709xxxxxx, 我将此类内容解析为CSV文件,以便以后在Excel中使用。但是,我想将此文本改为适合Excel中的不同列。因此,当我在Execel中打开CSV文件时,我希望名称在一列中,地址在除etcetc之外的列中。我怎样才能做

我将此文本块放在一个数组中:

"Stefan Olsson"
"Kungsvägen"
"Skolgatan"
xxxx-xx-xx
0735xxxxxx,
"Pär Davidsson"
"Skolgatan"
"Myntvägen"
xxxx-xx-xx
0709xxxxxx,
我将此类内容解析为CSV文件,以便以后在Excel中使用。但是,我想将此文本改为适合Excel中的不同列。因此,当我在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>";


}
$gatunan=$\u POST['gata'];
$ort=$_POST['omrade'];
$csv_data=array();
$newSpider->fetchPage($gatunan,$ort,$offset=0);
$obj=json_decode($newSpider->html);
回声“;
echo“NamnadressAddress2aDress3PersonNummerTelefonNummerTelefonNummer2”;
$antal_sidor=round($obj->search->wp->totalHits/$obj->search->wp->pageSize);
回声“;
foreach($obj->search->wp->features as$fish)//Loopar ut 50st(页面大小)
{
回声“;
回声“;
回声“$fish->name.”;
$csv_数据[].=utf8_解码($fish->name);
foreach($fish->地址为$ad)
{
回显“$ad->label.”“$ad->postcode.”“$ad->area.”;
$csv_data[].=utf8_解码($ad->label.“$ad->postcode.”。“$ad->area);
}   
如果(!空($fish->dateOfBirth))
{
$convert_date=substr($fish->dateof birth,0,-3);//Gör om datum från时间戳
回显“.日期(“Y-m-d”,“转换日期”);
$convert_-datee=日期(“Y-m-d”,“convert_-date”);
$csv_data[]。=$convert_datee;
}
如果(!空($fish->phoneNumbers))
{
foreach($fish->phonenumber作为$ph)
{
回声“$ph.”;
$csv_数据[].=$ph.“,”;
}
}       
回声“;
}
回声“;
$j=0;

对于($i=1;$i),这可以在php中完成,但我认为您忘记了所需的输出示例。@kevinabelita:所需的输出示例?输出如上所示。如果您只想编写csv,则使用php的内置fputcsv()函数是完全足够的;只有在需要样式、复杂公式、多个工作表或MS Excels的任何其他特殊功能时,才需要使用PHPExcel,但如果这是一大块文本,则需要将其重新构造为数组;无论您是否要使用PHPExcel或fputcsv()@MarkBaker:我已经有了一个包含文本块的数组。谢谢你的回答。它运行得很好。但是有一个问题。正如你在这里看到的:,前两行是正确的,但第三行是错误的,因为Bryan与Elin出现在同一行。它应该是Bryan的新行。你知道吗?我认为原因是每行一行son可以有两个地址,即5列,一个人只能有1个地址,结果只有4列。下面是我的$dataRow中的一个变量转储:正如你所看到的,Bryan和Elin在同一部分,这是错误的。我如何用空字符串替换第5行?你可能想在分块之前遍历数组,检查e需要插入一个额外的空条目(即一条记录只有4个条目)是的,但我如何进行这种检查?我不知道如何完成这种检查。是的,但我如何进行这种检查?我不知道如何完成这种检查。
// 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)