当excel表格单元格的格式是日期格式非文本格式的时候,phpexcel 应该要这样处理(thinkphp3.2)
16lz
2021-01-22
最近在做phpexcel导入表格资料的问题,如果在excel表格上的单元格格式存的是时间格式,正常读取出来的时候会是一个数字字符串,所有要用这个函数才能解析到正确的时间格式:
for($rowIndex=2;$rowIndex<=$allRow;$rowIndex++){ //循环读取每个单元格的内容。注意行从1开始,列从A开始 for($colIndex='A';$colIndex!=$allColumn;$colIndex++){ $addr = $colIndex.$rowIndex; $cell = $currentSheet->getCell($addr)->getValue();//先读出数据在看数据是否是纯数字 是的话就得转换 if($colIndex=='C' || $colIndex=='D'){ if(preg_match('/^\d*$/',$cell)){ $cell=gmdate("Y-m-d",\PHPExcel_Shared_Date::ExcelToPHP( $cell )); //得到对应的格式 } } if($cell instanceof PHPExcel_RichText){ //富文本转换字符串 $cell = $cell->__toString(); } $data[$rowIndex][$colIndex] = (string)$cell;//强制类型转换
PHPExcel_Shared_Date::ExcelToPHP( $cell )
更多相关文章
- 如何通过PHP将HTML页面作为字符串获取?
- PHP格式化日期,显示“刚刚,几分钟前,几小时前,几天前,几个月前”
- php 基本的常用字符串函数
- 用PHP计算字符串中元音的简单方法?
- 将DOMDocument中的特定元素导出为字符串
- PHP实现字符串转换成查询语句
- mysql 判断null 和 空字符串
- mysql值以数组格式转换为PHP数组
- 格式化mysql表引入Attendace表格格式