昨天的導(dǎo)入功能雖然完成,但今日發(fā)現(xiàn)了BUG,由于Excel里的日期格式轉(zhuǎn)換到PHP里會(huì)變成一串?dāng)?shù)字常量。經(jīng)過搜索大量文章得知,是由于$reader->setReadDataOnly(TRUE); #設(shè)置為只讀對(duì)象,這樣會(huì)導(dǎo)致phpspreadsheet不去識(shí)別日期和數(shù)字,所以注釋掉上面行代碼,添加了識(shí)別日期的功能,代碼如下:
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表里的日期格式轉(zhuǎn)換成php的時(shí)間戳
$data = date('Y/m/d',$data); #轉(zhuǎn)換成2016/03/03格式
}
}
繼昨天的進(jìn)度條功能,通過axios里的onUploadProgress方法里獲取progressEvent,可以實(shí)現(xiàn)進(jìn)步條功能,但是由于我是直接導(dǎo)入Excel表并直接寫入數(shù)據(jù)庫(kù),所以數(shù)據(jù)量大的話只能數(shù)據(jù)庫(kù)寫入需要一段時(shí)間,由于目前不知道如何獲取數(shù)據(jù)庫(kù)寫入的進(jìn)度相關(guān)的數(shù)據(jù),所以只能放棄進(jìn)度功能。
目前通過bs里的alert方法,來實(shí)現(xiàn)提醒用戶數(shù)據(jù)正在寫入數(shù)據(jù)庫(kù),當(dāng)寫入完成,alert success