Phpexcel文件:字符串数据类型在创建文件后被解析为数字


Phpexcel file: string data type is parsed as numbers after creating the file

我使用php excel创建excel文件。我正在填充我的excel文件从php数组值从MySQL数据库获取。我有字符串数据类型在第一列。但是在创建excel文件之后,像0987这样的字符串被转换为987,并自动对齐到单元格的右侧。我真的不想要excel文件的这个默认功能。我如何克服这个问题?任何提示/解决方案……帮帮我……

我是这样做的:

$objPHPExcel->getActiveSheet()->setCellValue('A1', '="0987"')

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

// Set the value as a number formatted with leading zeroes
$objPHPExcel->getActiveSheet()
    ->setCellValue('A3', 987);
$objPHPExcel->getActiveSheet()
    ->getStyle('A3')
    ->getNumberFormat()
    ->setFormatCode('0000');

注意,在第一种情况下,我调用setCellValueExplicit()方法,而不是setCellValue()方法。

如果您使用frommarray()方法在一步中填充数据块,那么后一种方法可能更容易,特别是当您填充完所有数据后,您可以在一步中设置整个单元格块的样式。

$objPHPExcel->getActiveSheet()
    ->getStyle('A3:A123')
    ->getNumberFormat()
    ->setFormatCode('0000');