美文网首页
2019-03-06

2019-03-06

作者: whIteKi | 来源:发表于2019-03-06 21:45 被阅读0次

    昨天的导入功能虽然完成,但今日发现了BUG,由于Excel里的日期格式转换到PHP里会变成一串数字常量。经过搜索大量文章得知,是由于$reader->setReadDataOnly(TRUE); #设置为只读对象,这样会导致phpspreadsheet不去识别日期和数字,所以注释掉上面行代码,添加了识别日期的功能,代码如下:

    if($dataType = $cell->getDataType() == \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_NUMERIC) {

    $coordinate = $cell->getCoordinate(); #获取单元格定位 e.g. F2

    $formatCode = $worksheet->getStyle($coordinate)->getNumberFormat()->getFormatCode(); #格式代码

    // var_dump($data);

    if($formatCode !== "General") { #判断是否是日期格式

    $data = \PhpOffice\PhpSpreadsheet\Shared\Date::excelToTimestamp($data); #将Excel表里的日期格式转换成php的时间戳

    $data = date('Y/m/d',$data); #转换成2016/03/03格式

    }

    }

    继昨天的进度条功能,通过axios里的onUploadProgress方法里获取progressEvent,可以实现进步条功能,但是由于我是直接导入Excel表并直接写入数据库,所以数据量大的话只能数据库写入需要一段时间,由于目前不知道如何获取数据库写入的进度相关的数据,所以只能放弃进度功能。

    目前通过bs里的alert方法,来实现提醒用户数据正在写入数据库,当写入完成,alert success

    相关文章

      网友评论

          本文标题:2019-03-06

          本文链接:https://www.haomeiwen.com/subject/rlrfpqtx.html