yii2框架利用PhpSpreadsheet写导入功能
时间: 2023-06-14 12:07:18 浏览: 208
Yii2框架可以使用PhpSpreadsheet库来读取Excel文件并将其导入到数据库中。
以下是一个简单的示例:
1. 首先,您需要在您的项目中安装PhpSpreadsheet库。您可以通过在终端中导航到您的项目目录并运行以下命令来完成安装:
```
composer require phpoffice/phpspreadsheet
```
2. 创建一个控制器和一个视图来处理文件上传和导入:
控制器:
```php
<?php
namespace app\controllers;
use Yii;
use yii\web\Controller;
use yii\web\UploadedFile;
use PhpOffice\PhpSpreadsheet\IOFactory;
class ImportController extends Controller
{
public function actionIndex()
{
// 处理文件上传
if (Yii::$app->request->isPost) {
$file = UploadedFile::getInstanceByName('file');
// 读取Excel文件
$reader = IOFactory::createReader('Xlsx');
$spreadsheet = $reader->load($file->tempName);
$worksheet = $spreadsheet->getActiveSheet();
// 读取数据并将其插入到数据库中
foreach ($worksheet->getRowIterator() as $row) {
$rowData = $row->toArray(null, true, true, true);
// 将数据插入到数据库中
}
Yii::$app->session->setFlash('success', '导入成功');
}
return $this->render('index');
}
}
```
视图:
```php
<?php
use yii\widgets\ActiveForm;
?>
<?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]) ?>
<?= $form->field($model, 'file')->fileInput() ?>
<button type="submit" class="btn btn-primary">导入</button>
<?php ActiveForm::end() ?>
```
3. 运行应用程序并导航到“/ import”路由。选择要导入的Excel文件并提交表单。
这是一个简单的示例,您可以根据需要进行修改和扩展。
阅读全文