30

我正在尝试使用 PHP 创建一个包含电话号码列表的文件。它工作正常,但是如果电话号码以零开头,则该数字将从 Excel 文件中删除。

有谁知道如何正确设置格式以使其保持原位?

4

6 回答 6

69

任何一个:

// Set the value explicitly as a string
$objPHPExcel->getActiveSheet()->setCellValueExplicit('A1', '0029', PHPExcel_Cell_DataType::TYPE_STRING);

或者

// Set the value as a number formatted with leading zeroes
$objPHPExcel->getActiveSheet()->setCellValue('A3', 29);
$objPHPExcel->getActiveSheet()->getStyle('A3')->getNumberFormat()->setFormatCode('0000');
于 2010-06-16T14:50:36.643 回答
16

将类型显式设置为字符串:

$type = PHPExcel_Cell_DataType::TYPE_STRING;
$sheet->getCellByColumnAndRow($column, $rowno)->setValueExplicit($value, $type);
于 2010-06-16T14:46:29.147 回答
1

这是一个老问题,但我最近一直在努力解决这个问题,我认为如果我在这里发布一些额外的信息,它可能会对未来的人有所帮助:

虽然上述答案是正确的,但当您删除位于格式化单元格之前的列或行时,格式会丢失。

似乎对此有抵抗力的解决方案是:

$cellRichText = new \PHPExcel_RichText($worksheet->getCell($cell));                        
$cellRichText->createText($cellValue);
于 2014-01-22T16:05:28.570 回答
1

如果由于某种原因上面的答案不起作用,您可以简单地尝试将数据用引号括起来,如下所示:

setCellValue('A1, '"' . $phone . '" ')

但是您的值也将被文件中的引号包围。

于 2015-04-21T05:05:23.060 回答
1

\t与类似的值一起使用"$phone\t"

于 2016-08-22T12:29:09.763 回答
0

就我而言,我正在使用

->setCellValue('A3', ' '0000123456789000' ');

它工作得很好。

于 2020-02-24T10:31:55.503 回答