使用比较值将数据从Excel导入数据库

时间:2017-11-06 07:53:57

标签: yii2

我想将Excel文件导入数据库。我还在学习如何导入Excel类型的文件。

我还希望值为null,例如如果Excel中的日期值为null,则不要将该行添加到数据库。

public function actionImport() {
    $inputFile = 'uploads/voucher.xls';
    try {
        $inputFileType = \PHPExcel_IOFactory::identify($inputFile);
        $objReader = \PHPExcel_IOFactory::createReader($inputFileType);
        $objPHPExcel = $objReader->load($inputFile);
    } catch (Exception $e) {
        die('error');
    }
    $sheet = $objPHPExcel->getSheet(0);
    $highestRow = $sheet->getHighestRow();
    $highestColumn = $sheet->getHighestColumn();
    for ($row = 1; $row <= $highestRow; $row++) {
        $rowData = $sheet->rangeToArray('A'.$row.':'.$highestColumn.$row, NULL, TRUE, FALSE);

        if ($row == 1) {
            continue;
        }

        $voucher = new voucher();
        $voucher->kode_voucher = $rowData[0][0];
        $voucher->tanggal = $rowData[0][1];
        $voucher->status = $rowData[0][2];
        $voucher->save();
    }
}

1 个答案:

答案 0 :(得分:0)

只需在验证模型中添加验证规则即可检查空值。然后使用

if($voucher->validate()) {
   $voucher->save(false);
}