1

我正在尝试使用 PHPExcel 创建一个 Excel 文件。源数据是一个关联数组的数组,每个关联数组存储一个名称和地址:

Array
(
    [0] => Array
        (
            [name] => Joe Bloggs
            [address] => 10 Main St 
Bayside 
Big Town ABC123
    )

    [1] => Array
        (
            [name] => Mary Bloggs
            [address] => 18 Bridge St
Riverside
Small Town XYZ987
        )
    :
    :
)

如您所见,地址包含换行符。我正在使用以下代码使用 PHP 将此数据写入 Excel 文件:

$phpExcel = new PHPExcel();

$phpExcel->setActiveSheetIndex(0);
$phpExcel->getActiveSheet()->getCell('A1')->setValue("Name");
$phpExcel->getActiveSheet()->getCell('B1')->setValue("Address");
$index = 2;
foreach($rows as $row) {
    $phpExcel->getActiveSheet()->getCell('A'.$index)->setValue($row["name"]);
    $phpExcel->getActiveSheet()->getCell('B'.$index)->setValue($row["address"]);
    $index++;
}
$objWriter = PHPExcel_IOFactory::createWriter($phpExcel, 'Excel2007');
$filename = "outputs/excel/data.xlsx";
$objWriter->save($filename);

但是,生成的 Excel 文件不包含我要保留的换行符。

Name         Address
Joe Bloggs   10 Main St Bayside Big Town ABC123
Mary Bloggs  18 Bridge St Riverside Small Town XYZ987
...

从PHPExcel 网站上的评论来看,似乎应该可以做到这一点,但我无法弄清楚如何做到这一点。

谁能帮我?谢谢。

4

2 回答 2

7

尝试使用它而不是“\n”:

$lfcr = chr(10) . chr(13);

然后用 $lfcr 替换任何地方的“\n”,如下所示:

setValue("First line". $lfcr . "second Line" . $lfcr . "Third Line");
于 2015-10-16T03:11:50.193 回答
4

您使用“\n”作为返回字符;并且需要将一个单元格设置为wrap

$objPHPExcel->getActiveSheet()
    ->getCell('A1')
    ->setValue("First line\nSecond Line\nThird Line");
$objPHPExcel->getActiveSheet()
    ->getStyle('A1')
    ->getAlignment()
    ->setWrapText(true);

如开发者文档第 4.6.6 节所述

于 2013-07-27T17:34:22.723 回答