我正在尝试使用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网站的comments开始,似乎应该可以这样做,但我无法弄清楚如何做到这一点。
任何人都可以帮助我吗?感谢。
答案 0 :(得分:6)
尝试使用此代替" \ n":
$lfcr = chr(10) . chr(13);
然后替换" \ n"每个地方都有$ lfcr,像这样:
setValue("First line". $lfcr . "second Line" . $lfcr . "Third Line");
答案 1 :(得分:4)
您使用“\ n”作为返回字符;并且需要将单元格设置为wrap
;
$objPHPExcel->getActiveSheet()
->getCell('A1')
->setValue("First line\nSecond Line\nThird Line");
$objPHPExcel->getActiveSheet()
->getStyle('A1')
->getAlignment()
->setWrapText(true);
,如开发人员文档的第4.6.6节所述