如何使用PHPExcel_IOFactory在PHP中获取excel表单元格dataType

时间:2018-01-05 07:04:25

标签: php excel phpexcel

在这里,我使用PHPExcel库从excel表(test.xlsx)获取所有单元格值。 但是我没有得到dataType的值。 我需要带有此dataType(字符串或数字或日期)的Excel工作表数据。

我的代码:

require_once 'Classes/PHPExcel.php';
$file_path = "test.xlsx";
try {
    $objPHPExcel = PHPExcel_IOFactory::load($file_path);
} catch(Exception $e) {
    die('Error loading file "'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage());
}
$sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true);

print_r($sheetData);

建议拜托!

1 个答案:

答案 0 :(得分:1)

您可以通过调用单元格的getDataType()方法来检索单元格的数据类型:

$objPHPExcel->getActiveSheet()
    ->getCell('A1')
    ->getDataType();

这可以返回以下值:

- TYPE_STRING2  = 'str';          // string
- TYPE_STRING   = 's';            // string
- TYPE_FORMULA  = 'f';            // formula
- TYPE_NUMERIC  = 'n';            // number
- TYPE_BOOL     = 'b';            // boolean
- TYPE_NULL     = 'null';         // null
- TYPE_INLINE   = 'inlineStr';    // rich text string
- TYPE_ERROR    = 'e';            // error

这些数据类型的常量在PHPExcel_Cell_DataType类中定义

Date没有特定的数据类型,就Excel而言,它只是一个数字:您需要查看单元格的数字格式掩码,以区分浮点数和日期。

PHPExcel为此

提供了一种方法
PHPExcel_Shared_Date::isDateTime($objPHPExcel->getActiveSheet()->getCell('A1'));
相关问题