将单元格的数据类型显式设置为数值的文本

时间:2015-06-27 07:29:51

标签: php mysql phpexcel

我想明确地将单元格的数据类型设置为数值的文本。

我从MySQL数据库中获取数据并使用PHPExcel Library导出到excel文件。我有大约20个数字的长数字,我想导出到excel单元格(整个列的每个单元格将有不同的数字)。

我发现您可以通过PHPExcel Documentation 4.6.7。

中提到的代码执行此操作
$i=0;
foreach($dd as $d) {
    $objPHPExcel
        ->setActiveSheetIndex(0)
       ->getcell('A'.$i)
       ->setValueExplicit($d['serial_no'], PHPExcel_Cell_DataType::TYPE_STRING);
    $i++;
}

$d['serial_no'] - 来自数据库的不同序列号,例如“9876543211234567890”。

我已经实现了这个代码,它的工作正常。但是,当我打开excel表并尝试修改该单元格,然后点击其他任何地方再次转换为数字格式(客户端的要求:它应保留为文本)。

即使我在其中编辑,我也希望将该单元格保留为文本。

2 个答案:

答案 0 :(得分:3)

我没有对它进行测试,但可能将单元格设置为“quotePrefix”可能会阻止MS Excel在使用MS Excel编辑时尝试转换数据类型

$objPHPExcel->getActiveSheet()
    ->getStyle('A2:O128')
    ->setQuotePrefix(true);

仅限Excel2007

答案 1 :(得分:2)

$objPHPExcel->getActiveSheet()
->getStyle('A'.$i)
->getNumberFormat()
->setFormatCode(
    PHPExcel_Style_NumberFormat::FORMAT_TEXT
);