如何使用 PHPExcel_IOFactory 在 PHP 中获取 excel sheet 单元格数据类型

How to get excel sheet cell dataType in PHP using PHPExcel_IOFactory

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

我的代码:

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);

请指教!

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

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

这可以 return 值:

- 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 class

中定义

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

PHPExcel为此提供了一个方法

PHPExcel_Shared_Date::isDateTime($objPHPExcel->getActiveSheet()->getCell('A1'));