写一段yii2 上传xecel文件并保存的代码
时间: 2023-05-18 13:03:56 浏览: 89
写入excel代码文件
好的,以下是一段 Yii2 上传 Excel 文件并保存的代码:
// 在控制器中处理上传文件的操作
public function actionUploadExcel()
{
$model = new ExcelModel();
if (Yii::$app->request->isPost) {
$model->excelFile = UploadedFile::getInstance($model, 'excelFile');
if ($model->upload()) {
// 上传成功,保存文件并处理数据
$filePath = $model->getFilePath();
$excelData = $this->processExcelData($filePath);
// 保存数据到数据库
$this->saveExcelData($excelData);
return $this->redirect(['index']);
}
}
return $this->render('uploadExcel', ['model' => $model]);
}
// ExcelModel 模型类
class ExcelModel extends \yii\base\Model
{
public $excelFile;
public function rules()
{
return [
[['excelFile'], 'file', 'extensions' => 'xls, xlsx'],
];
}
public function upload()
{
if ($this->validate()) {
$this->excelFile->saveAs($this->getFilePath());
return true;
} else {
return false;
}
}
public function getFilePath()
{
return Yii::getAlias('@webroot') . '/uploads/' . $this->excelFile->baseName . '.' . $this->excelFile->extension;
}
}
// 处理 Excel 数据的方法
private function processExcelData($filePath)
{
// 使用 PHPExcel 库读取 Excel 文件
$objPHPExcel = \PHPExcel_IOFactory::load($filePath);
$sheetData = $objPHPExcel->getActiveSheet()->toArray(null, true, true, true);
// 处理数据
$excelData = [];
foreach ($sheetData as $row) {
$rowData = [];
foreach ($row as $cell) {
$rowData[] = $cell;
}
$excelData[] = $rowData;
}
return $excelData;
}
// 保存 Excel 数据到数据库的方法
private function saveExcelData($excelData)
{
// 将数据保存到数据库
// ...
}
希望这段代码能够帮助到你!
阅读全文