PHPExcel,保存字符串而不做任何更改

时间:2013-07-19 14:31:44

标签: php phpexcel

我正在使用PHPExcel在xls文件中保存多维数组数据

这是我的代码:

    $arr = array(
        array("01", "02", "03"),
        array("04", "05", "06"),
    );


    // include PHPExcel library

    $objPHPExcel = new PHPExcel();
    $objPHPExcel->getActiveSheet()->fromArray($arr);

    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
    $objWriter->save("file.xls");

我的问题是在我的xls文件中删除了启动空值。例如,保存时不是01,而是保存为1

如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

如果您希望带有数字值的字符串保留前导零,那么您有两个选择: 使用将其写为字符串     $ objPHPExcel-> getActiveSheet() - > getCell( 'A1')          - > setValueExplicit(             '01',             PHPExcel_Cell_DataType :: TYPE_STRING         ); (PHPExcel_Cell_DataType :: TYPE_STRING是默认值,因此您实际上不必指定该参数)

或允许将其写为数字,然后设置格式掩码以使用前导零显示它

$objPHPExcel->getActiveSheet()->getStyle('A1')
    ->getNumberFormat()
    ->setFormatCode("00");

修改

您可以将样式应用于一系列单元格,而不仅仅是单个单元格

$arr = array(
    array("01", "02", "03"),
    array("04", "05", "06"),
);

// include PHPExcel library
$objPHPExcel = new PHPExcel();
$objPHPExcel->getActiveSheet()->fromArray($arr);

$objPHPExcel->getActiveSheet()->getStyle('A1:C2')
    ->getNumberFormat()
    ->setFormatCode("00");

答案 1 :(得分:1)

论坛上似乎有一个解决方案: http://phpexcel.codeplex.com/discussions/31240

答案 2 :(得分:1)

你需要像这样设置行的属性

$objPHPExcel->getActiveSheet()->getStyle('A0')->getNumberFormat()->setFormatCode("@");

但我不知道你需要什么格式,只需找到mannul