我仍然在學習Yii 2框架的過程。我能夠創建一個上傳Excel文件然後使用phpexcel保存到數據庫的表單。我想通過這樣一種方式來增強它,即上傳的Excel中的數據將顯示在查看的表中,以便用戶可以檢查數據是否與Excel文件相同。檢查後,用戶將有兩個選項,無論是取消還是繼續。Yii2在保存到數據庫之前顯示phpexcel中的數據
這裏是我的控制器方法來讀取文件並保存:
public function importExcel($model, $readFile, $dir)
{
try {
$readFileType = \PHPExcel_IOFactory::identify($readFile);
$objReader = \PHPExcel_IOFactory::createReader($readFileType);
$objPHPExcel = $objReader->load($readFile);
}
catch(Exception $e) {
die('Error reading data from excel file.');
}
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow();
$highestCol = $sheet->getHighestColumn();
for($row = 9; $row <= $highestRow; $row++) {
$rowData = $sheet->rangeToArray('A'. $row . ':' . $highestCol . $row, NULL, TRUE, FALSE);
$objPHPExcel->getActiveSheet()
->getStyle('A'. $row . ':' . $highestCol . $row)
->getNumberFormat()->setFormatCode('0000');
// ->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT);
if($row == 9) {
continue;
}
$document = new Document();
$document->type_id = ($rowData[0][0] == 'Ordinance' ? 1 : 2);
$document->no = $rowData[0][1];
$document->series = $rowData[0][2];
$document->title = $rowData[0][3];
$document->author = $rowData[0][5];
$document->date_approved = date('Y-m-d', strtotime($rowData[0][8].' '.$rowData[0][9].' '.$rowData[0][10]));
$document->region_c = $model->region_c;
$document->province_c = $model->province_c;
$document->citymun_c = $model->citymun_c;
$document->catParent = 1;
$document->category_id = 1;
$document->file_url = $dir . '/unzip/' . $rowData[0][13];
$document->save();
}
}
請添加一些代碼,你已經嘗試過。 – arogachev
我只想知道是否可以在arraydataprovider中加載$ rowData並將其傳遞給GridView。 –