咔片PPT · AI自动生成演示文稿,模板丰富、排版精美 讯飞智文 · 一键生成PPT和Word,高效应对学习与办公

每日一招,每日掌握一个要点,日积月累的积累 。虽然马上成为不了大神,大牛,但离大神不远了。

1.PHPExcel需要导入含有下拉框 解决办法:

使用setReadDataOnly(TRUE),

有下拉框的excel导入进来后:excel时间为2014-5-27这种格式,但是导入php文件时却是41986一串数字

解决办法:

if($cell->getDataType() == PHPExcel_Cell_DataType::TYPE_NUMERIC){ // //版本过低的话请加上 getParent 例:$cell->getParent()->getStyle($cell->getCoordinate())->getNumberFormat(); $cellstyleformat = $cell->getStyle( $cell->getCoordinate() )->getNumberFormat(); $formatcode = $cellstyleformat->getFormatCode(); // 判断是否为日期类型 if (preg_match('/^([$[A-Z]*-[0-9A-F]*])*[hmsdy]/i', $formatcode)) { $value = gmdate("Y-m-d", PHPExcel_Shared_Date::ExcelToPHP($value)); } else { //PHPExcel 能够将日期/时间值识别为日期/时间,但是使用了setReadDataOnly(true),识别不了,所以多加一个判断 if (in_array($col,$dateCol)){ $value = date("Y-m-d", strval(PHPExcel_Shared_Date::ExcelToPHP($value))); }else { $value = PHPExcel_Style_NumberFormat::toFormattedString($value,$formatcode); } } }

完整代码:

canRead($filePath)) { $PHPReader = new PHPExcel_Reader_Excel5(); if (!$PHPReader->canRead($filePath)) { return "File Can Not Be Readed."; } } #只读取表格数据,忽略里面的各种格式,否则会内存耗尽 $PHPReader->setReadDataOnly(TRUE); $PHPExcel = $PHPReader->load($filePath); if (is_int($sheet)) { $currentSheet = $PHPExcel->getSheet($sheet); } else { $currentSheet = $PHPExcel->getSheetByName($sheet); } if (empty($currentSheet)) { return "Sheet Not Exists."; } /**取得一共有多少列*/ $maxColumn = $currentSheet->getHighestColumn(); $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($maxColumn); /**取得一共有多少行*/ $rowCount = $currentSheet->getHighestRow(); $result = array(); for ($row = 1; $row <= $rowCount; $row++) { $totalLen = 0; //记录行总长度 for ($col = 0; $col <= $highestColumnIndex; ++$col) { $cell =$currentSheet->getCellByColumnAndRow($col, $row); $value=$cell->getValue(); // excel导入进来后:excel时间为2014-5-27这种格式,但是导入php文件时却是41986一串数字,解决办法: if($cell->getDataType() == PHPExcel_Cell_DataType::TYPE_NUMERIC){ // //版本过低的话请加上 getParent 例:$cell->getParent()->getStyle($cell->getCoordinate())->getNumberFormat(); $cellstyleformat = $cell->getStyle( $cell->getCoordinate() )->getNumberFormat(); $formatcode = $cellstyleformat->getFormatCode(); // 判断是否为日期类型 if (preg_match('/^([$[A-Z]*-[0-9A-F]*])*[hmsdy]/i', $formatcode)) { $value = gmdate("Y-m-d", PHPExcel_Shared_Date::ExcelToPHP($value)); } else { //PHPExcel 能够将日期/时间值识别为日期/时间,但是使用了setReadDataOnly(true),识别不了,所以多加一个判断 if (in_array($col,$dateCol)){ $value = date("Y-m-d", strval(PHPExcel_Shared_Date::ExcelToPHP($value))); }else { $value = PHPExcel_Style_NumberFormat::toFormattedString($value,$formatcode); } } } if (is_object($value)) { $value = $value->__toString(); } $value = trim($value); $result[$row][] = $value; $totalLen += strlen(trim($value)); } if ($totalLen == 0) unset($result[$row]); //去掉空行 } return array_values($result); } // $dateCol 第几列为日期数据 $dateCol = [0]; self:: readEXCELDate($filePath, 0, $dateCol);

热门推荐

2.每日一招:docker安装easyswoole

3.个人可以做哪些副业兼职赚钱?