phpexcel 导入 时间格式 和 数值格式 处理

/**
 * Notes:导入excel文件
 * User: hly
 * Date: 2020/4/14 17:56
 */
function importXlsx()
{
    //引入phpexcel
    require getcwd() . ‘/PHPExcel.php‘;
    $file_name = ‘test.xlsx‘; //模拟上传后的文件
    $objReader = \PHPExcel_IOFactory::createReader(‘Excel2007‘);
    $objPHPExcel = $objReader->load($file_name, $encode = ‘utf-8‘);
    $sheet = $objPHPExcel->getSheet(0);
    $highestRow = $sheet->getHighestRow(); // 取得总行数
    $data = array();
    for ($i = 2; $i <= $highestRow; $i++) {
        $data[$i - 2][‘title‘] = getCellValue($objPHPExcel->getActiveSheet()->getCell("A" . $i));
        $data[$i - 2][‘date_time‘] = getCellValue($objPHPExcel->getActiveSheet()->getCell("B" . $i), ‘Y-m-d H:i:s‘);
    }
    exit(json_encode($data));
}

function getCellValue($cell, $date_format = "Y-m-d H:i:s")
{
    $value = $cell->getValue();
    if($cell->getDataType() == \PHPExcel_Cell_DataType::TYPE_NUMERIC){
        //版本过低的话请加上 getParent 例:$cell->getParent()->getStyle($cell->getCoordinate())->getNumberFormat();
        $cell_style_format = $cell->getStyle($cell->getCoordinate())->getNumberFormat(); //不需要getParent
        $format_code = $cell_style_format->getFormatCode();
        if (preg_match(‘/^([$[A-Z]*-[0-9A-F]*])*[hmsdy]/i‘, $format_code)) { //判断是否为日期类型
            $value = gmdate($date_format, \PHPExcel_Shared_Date::ExcelToPHP($value)); //格式化日期
        }else{
            $value = \PHPExcel_Style_NumberFormat::toFormattedString($value, $format_code); //格式化数字
        }
    }
    return $value;
}

importXlsx();

  

原文地址:https://www.cnblogs.com/handle/p/12699660.html

时间: 2024-12-19 22:29:17

phpexcel 导入 时间格式 和 数值格式 处理的相关文章

第六章:表达格式和数值格式的转换

前言 在网络编程中,用户给出的IP参数往往是字符串格式的( 我们也称它为表达格式 ).然而,请看通用套接字地址结构定义: 1 struct in_addr { 2 in_addr_t s_addr; // 存放IP地址的整型变量 3 }; 4 5 struct sockaddr_in { 6 uint8_t sin_len; 7 sa_family_t sin_familt; 8 in_port_t sin_port; 9 10 struct in_addr sin_addr; // 存放IP地

通过phpexcel获取时间并转换为正常格式

excel内容如下: phpExcel获取到的时间格式如下: 时间格式为,月份-日期-年分 思路是将它转为时间戳,然后就好处理了 php日期函数 int gmmktime([hour],[minute],[second],[month],[day],[year]) 简单来说,返回指定的时间戳 //$data为从excel中获取到的数组 for ($i =0; $i<count($data);$i++){     echo '<br>';     $gettime= explode('-'

使用PHPExcel导入导出excel格式文件

使用PHPExcel导入导出excel格式文件 作者:zccst 由于导出使用较多,下面是导出实现过程. 第一步,将PHPExcel的源代码复制到项目的lib下 文件包括:PHPExcel.php 和 文件夹PHPExcel 源代码见附件 注1:源代码是zip格式,能在windows和linux通用. 注2:PHPExcel.zip是干净代码,可以直接引用.PHPExcel2.zip有svn记录,不适合直接引用. 第二步:在需要导出的handler页面中引用 1,在头部引入三个文件 Php代码 

jsp中用EL读取了数据库里面的时间,怎么设置格式显示的格式

jsp中用EL读取了数据库里面的时间,怎么设置格式显示的格式 首先导入标签 <%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> <input type="text" value="<fmt:formatDate value="${viewKq.srq}" pattern="yyyy-M-d" /&g

Linux date命令-显示和设置系统日期与时间 压缩包以YYMMDD格式命令

date --help用法:date [选项]... [+格式] 或:date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]以给定的格式显示当前时间,或是设置系统日期. -d,--date=字符串        显示指定字符串所描述的时间,而非当前时间  -f,--file=日期文件        类似--date,从日期文件中按行读入时间描述  -r, --reference=文件        显示文件指定文件的最后修改时间  -R, --rf

将json格式日期(毫秒数)转成日常日期格式和日常格式时间对比

第一:是把生成的Json格式的时间转换,注意要看清楚时间的格式 function (cellval) { var date = new Date(parseInt(cellval.replace("/Date(", "").replace(")/", ""), 10)); var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1

带毫秒的字符转换成时间(DateTime)格式的通用方法

好久没更新日志了,添加个方法吧,本身没有什么技术可言,为了能方便大家,我稍微整理一下咯~ 带毫秒的字符转换成时间(DateTime)格式通用方法,如下:(支持格式:2014-10-10 10:10:10,666 或 2014-10-10 10:10:10 666) /// <summary> /// 带毫秒的字符转换成时间(DateTime)格式 /// 可处理格式:[2014-10-10 10:10:10,666 或 2014-10-10 10:10:10 666] /// </sum

字幕文件处理(1) - 时间格式与整数格式互转

摘要 一个字幕文件一般包含两部分内容:时间索引和脚本内容.一般,常见的字幕文件格式有WebVTT, SRT和TTML. 编辑字幕文件就是对每一段字幕的时间索引或脚本内容进行编辑.也包括对字幕文件的格式进行转换,参考字幕文件处理(2) - 字幕文件格式转化. 拿WebVTT来说,它支持如下两种格式的时间索引: l    mm:ss.ttt l    hh:mm:ss.ttt 而对于SRT文件格式,它的时间索引可能是这个样子的: l    hh:mm:ss,ttt 编辑时间索引时,如果将时间格式转化

VirtualBox导入VmWare生成的.vmdk格式虚拟机镜像

VmWare默认的镜像格式是.vmdk格式的,VirtualBox则默认是.vdi格式的.其实这在VirtualBox新建虚拟机的过程中是可选的. 导入.vmdk格式的镜像到VirtualBox只需要新建一个虚拟机,并且不创建虚拟硬盘.如下图: 无视警告,继续: 创建好之后,在设置里面把.vmdk格式的虚拟硬盘添加进去: 这样就可以了. 如果遇到windows虚拟机起不开的情况,尝试更改下下面这个选项: 启用下I/O APIC试试. 原文地址:https://www.cnblogs.com/Ch