使用PHPExcel获取单元格类型

时间:2014-01-14 08:50:08

标签: phpexcel

您好我有这个代码来读取表格excel文件并使用joomla

添加到数据库
try 
        {
            $inputFileType = PHPExcel_IOFactory::identify($inputFileName);
            $objReader = PHPExcel_IOFactory::createReader($inputFileType);
            $objReader = PHPExcel_IOFactory::createReader($inputFileType);
            $objPHPExcel = $objReader->load($inputFileName);
        } 
        catch(Exception $e) {
            die('Error loading file "'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage());
        }

        $sheet = $objPHPExcel->getSheet(0); 
        $highestRow = $sheet->getHighestRow(); 
        $highestColumn = $sheet->getHighestColumn();

        for($i = 11; $i <= $highestRow; $i++)
        {
$rowData = $sheet->rangeToArray('A' . $i . ':' . $highestColumn . $i,
                                                NULL,
                                                TRUE,
                                                True
                                                );
                $row = $rowData[0];
$valeur1 = $row[8];
}

我打开文件,每行读取一次,每行读取每个单元格

有时候,行[8]是一个格式化的数字(100100.5),有时候不像(100,100.5)或其他 好吧,如果单元格不是数字,我需要知道单元格类型以进行一些更改。

1 个答案:

答案 0 :(得分:5)

使用

$rowData = $sheet->rangeToArray(
    'A' . $i . ':' . $highestColumn . $i,
    NULL,
    True,
    False
);

将从范围返回原始值,而不是格式化值

或者,对于单个单元格,您可以使用

$sheet->getCell('A8')->getDataType();

获取存储在单元格中的实际数据类型。数据类型列表在Classes/PHPExcel/Cell/DataType.php

中定义
const TYPE_STRING2  = 'str';
const TYPE_STRING   = 's';
const TYPE_FORMULA  = 'f';
const TYPE_NUMERIC  = 'n';
const TYPE_BOOL     = 'b';
const TYPE_NULL     = 'null';
const TYPE_INLINE   = 'inlineStr'; // Rich text
const TYPE_ERROR    = 'e';