PHPExcel – 使列不丢弃前导零

我目前正在运行代码来获取一个.csv文件,该文件每天都会被创build并正在使用; 作为分隔符,并将其导出到Excel电子表格中。 代码如下:

$xlFileName = $outDir."output_".date("njY").".xls"; require_once 'PHPExcel_1.8.0_doc/Classes/PHPExcel/IOFactory.php'; $objReader = PHPExcel_IOFactory::createReader('CSV'); $objReader->setDelimiter(";"); //$objReader->setInputEncoding('UTF-16LE'); $objPHPExcel = $objReader->load($todayFileName); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save($xlFileName); 

我遇到的这个问题是,一列是邮政编码,可以从0开始。有没有什么办法可以告诉PHPExcel不要丢弃该特定列中的前导零?

编辑:

示例csv内容:

 Date;Zip Code;Data;Data;Data 10/12/2015;01234; Some Data ; More Data ; More Data 10/12/2015;12345; Some Data ; More Data ; More Data 10/12/2015;23456; Some Data ; More Data ; More Data 10/12/2015;34567; Some Data ; More Data ; More Data 

导出电子表格中的第一个邮编始终是1234而不是01234

所以,这个问题看起来像是将文本格式化。 我跑过逐个单元格并手动添加零并将其作为string插入到单元格中。 当我打开excel文件,零仍然失踪。 单元格被格式化为文本,如果我在Excel中添加了一个零,它就停留在周围。

所以,我采取了完全不同的路线。 我有几个文件,我必须每天转换,并且邮编代码列并不总是相同的,所以我添加了一些代码来检查这是什么。 下面是设置现在为我工作的格式的代码:

 $worksheet = $objPHPExcel->getActiveSheet(); $zipColumn = "ZZ"; foreach ($worksheet->getRowIterator() as $row) { $cellIterator = $row->getCellIterator(); $cellIterator->setIterateOnlyExistingCells(false); foreach ($cellIterator as $cell) { if (!is_null($cell)) { if($cell->getColumn() == $zipColumn){ $objPHPExcel->getActiveSheet()->getStyle($cell->getCoordinate())->getNumberFormat()->setFormatCode('[<=99999]00000;00000-0000'); } if(strtolower( $cell->getValue() ) == "zip code"){ $zipColumn = $cell->getColumn(); } } } } 

如果其他人有类似的问题,希望能有所帮助。