使用PHPExcel获取单元格类型

Rad*_*Rad 1 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];
}
Run Code Online (Sandbox Code Playgroud)

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

好吧有时候行[8]是一个格式化的数字(100100.5),有时候不像(100,100.5)或其他什么我需要知道细胞类型,如果细胞不是数字就做一些改变.

Mar*_*ker 5

运用

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

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

或者,对于单个细胞,您可以使用

$sheet->getCell('A8')->getDataType();
Run Code Online (Sandbox Code Playgroud)

获取存储在单元格中的实际数据类型.数据类型列表在.中定义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';
Run Code Online (Sandbox Code Playgroud)

  • @Kannu - 您能否解释为什么您认为此答案应该为您的日期列标识提供解决方案?因此解释为什么downvote? (2认同)