在PHP EXCEL中读取date格式
我已经阅读使用PHP Excel的Excel文件。
但是,该Excel文件包含一些date(时间格式)的PHP Excel中返回错误的值为这种情况
我的代码在下面
enter code hereinclude 'Classes/PHPExcel/IOFactory.php'; $inputFileName = 'index.xlsx'; // Read your Excel workbook try { $inputFileType = PHPExcel_IOFactory::identify($inputFileName); $objReader = PHPExcel_IOFactory::createReader($inputFileType); $objPHPExcel = $objReader->load($inputFileName); } catch (Exception $e) { die('Error loading file "' . pathinfo($inputFileName, PATHINFO_BASENAME) . '": ' . $e->getMessage()); } // Get worksheet dimensions $sheet = $objPHPExcel->getSheet(0); $highestRow = $sheet->getHighestRow(); $highestColumn = $sheet->getHighestColumn(); // Loop through each row of the worksheet in turn for ($row = 1; $row <= $highestRow; $row++) { // Read a row of data into an array $rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, NULL, TRUE, FALSE); foreach ($rowData[0] as $k => $v) echo "Row: " . $row . "- Col: " . ($k + 1) . " = " . $v . "<br />"; }
任何人都可以帮助这个..在PHPExcel的这种情况下有一些特定的function..
我的inputexcel文件在下面
2013-12-12,2013-12-13
我的输出在下面
41621,41631
有一些方法隐蔽date格式输出数据?
当您使用PHPExcel_Reader_Excel5 lib读取xls文件时,文件中的数据是39984,但Excel使用date格式掩码将其格式化为“2009-06-20”?
Excel将保存date作为自1900年1月1日以来的天数(在Windows 1900日历上)的计数。 PHPExcel以相同的方式存储date,但不会自动为您设置格式。
您可以使用PHPExcel_Style_NumberFormat::toFormattedString(39984,PHPExcel_Style_NumberFormat::FORMAT_DATE_DDMMYYYY)
自己格式化它们
或者其他任何格式掩码
PHPExcel_Style_NumberFormat
,或使用它将其转换为PHPdate
PHPExcel_Shared_Date::ExcelToPHP(39984)
然后使用PHP的date()
函数可以根据需要进行格式化
例:
$val = date('Ym-d', PHPExcel_Shared_Date::ExcelToPHP($cell->getValue()));
另一种方法是使用gmdate:
$excel_date = 43010; //here is that value 41621 or 41631 $unix_date = ($excel_date - 25569) * 86400; $excel_date = 25569 + ($unix_date / 86400); $unix_date = ($excel_date - 25569) * 86400; echo gmdate("Ymd", $unix_date); //result is 2017-10-02