在PHPExcel中使用setcellvalue使用公式

时间:2013-07-15 10:09:15

标签: php replace phpexcel setvalue

我想使用“替换”公式来设置excel中的值。我的代码生成超过16位的数字,我无法在PHPExcel中编写。 (Excel不支持将超过16位数字作为数字写入,它将最后一位数字转换为“零”。如果我想添加16位数字,我需要将数字类型转换为文本)。 所以我在mysql中使用concat函数将1234567890123456位数字返回给'1234567890123456

当我生成excel文件时,它返回单引号附加excel。 我假设替换功能将是有用的。

$id = "'1234567890123456";
$objPHPExcel->getActiveSheet()->setCellValue('A2', '=REPLACE("'.$id.'"|1|1|)');

根本不起作用。我做错了吗?

1 个答案:

答案 0 :(得分:2)

完全可以将PHPExcel中的大数值写为字符串,而不必使用公式:

$id = "1234567890123456";
$objPHPExcel->getActiveSheet()
    ->setCellValueExplicit('A2', $id);

setCellValue()会将单元格的数据类型设置为数字;但是setCellValueExplicit()允许您将数据类型指定为第三个参数 - 它默认为PHPExcel_Cell_DataType :: TYPE_STRING,因此在这种情况下您不需要传递该参数