PHPExcel (2) -- インポート関数
前節では、PHPExcel のエクスポート関数について学習しました。したがって、このセクションでは、PHPExcel を使用して Excel ファイルからデータベースにデータをインポートする方法を学びましょう。
PHPExcel の使用方法は前のセクションで説明したものと同じです: http://blog.csdn.net/liuruiqun/article/details/45667789
1. まず、アプリケーション (github) をダウンロードします。リンクは: https://github.com/PHPOffice/PHPExcel
2. protected/extensions パスの下に PHPexcel ディレクトリを作成し、ダウンロードした PHPExcel ファイルを解凍します。
3. 解凍したクラス ディレクトリ内のすべての内容を protected/extensions/PHPexcel ディレクトリにコピーします
4. まず、コントローラー ファイル XXX.Controller.php に関連するファイルを導入します
<?phpYii::import('application.extensions.*');require_once('PHPExcel/PHPExcel.php');require_once 'PHPExcel/PHPExcel/Writer/Excel5.php'; // 用于其他低版本xlsrequire_once 'PHPExcel/PHPExcel/Writer/Excel2007.php'; // 用于 excel-2007 格式...
public function actionUpload() { spl_autoload_unregister(array('YiiBase', 'autoload')); $phpExcelPath = Yii::getPathOfAlias('application.extensions.PHPExcel.PHPExcel'); include($phpExcelPath . DIRECTORY_SEPARATOR . 'IOFactory.php'); spl_autoload_register(array('YiiBase', 'autoload')); //前提工作 if (isset($_POST['submit'])) { $file_temp = CUploadedFile::getInstanceByName('files'); $file1 = $file_temp->getName(); $file = iconv("utf-8", "gb2312", $file1); //中文乱码 $file_dir = YiiBase::getPathOfAlias('webroot') . '/assets/upload/subject/' . $file; $file_temp->saveAs($file_dir, true); $objReader = PHPExcel_IOFactory::createReader('Excel5'); //use excel2007 for 2007 format $objPHPExcel = $objReader->load($file_dir); $sheet = $objPHPExcel->getSheet(0); $total_line = $sheet->getHighestRow(); // 取得总行数 //$total_column = $sheet->getHighestColumn(); // 取得总列数 for ($row = 2; $row <= $total_line; $row++) { $a = $objPHPExcel->getActiveSheet()->getCell("A" . $row)->getValue(); //获取A列的值(ID) $b = $objPHPExcel->getActiveSheet()->getCell("B" . $row)->getValue(); //获取B列的值(ID) $model = new Subject; $model->name = $a; $model->credit = $b; $model->save(); } $this->redirect(array('admin')); } $this->render('upload'); }