ThinkPHP 是一个流行的 PHP 开发框架,它提供了丰富的功能和组件,方便开发者快速构建 Web 应用程序。导入 Excel 文件是 Web 开发中常见的需求之一,通常用于批量处理数据,如用户导入、数据备份等。
以下是一个使用 PhpSpreadsheet 库在 ThinkPHP 中导入 Excel 文件的示例代码:
<?php
namespace app\index\controller;
use think\Controller;
use PhpOffice\PhpSpreadsheet\IOFactory;
class ExcelController extends Controller
{
public function importExcel()
{
$file = request()->file('excel');
if (!$file) {
return json(['code' => 0, 'msg' => '请选择文件']);
}
$info = $file->validate(['ext' => 'xlsx,xls'])->move(ROOT_PATH . 'public' . DS . 'uploads');
if (!$info) {
return json(['code' => 0, 'msg' => $file->getError()]);
}
$filePath = ROOT_PATH . 'public' . DS . 'uploads' . DS . $info->getSaveName();
$spreadsheet = IOFactory::load($filePath);
$sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);
// 处理数据
foreach ($sheetData as $row) {
// 这里可以进行数据验证和处理
// 例如,将数据插入数据库
// Db::name('table')->insert(['column1' => $row[0], 'column2' => $row[1]]);
}
return json(['code' => 1, 'msg' => '导入成功']);
}
}php.ini 文件中设置 memory_limit = 256M。通过以上方法,可以有效地解决在 ThinkPHP 中导入 Excel 文件时可能遇到的问题。
没有搜到相关的文章