如何使用 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'));
在这里,我使用 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'));