cqpCow 9 月之前
父節點
當前提交
08596b160d
共有 1 個文件被更改,包括 32 次插入8 次删除
  1. 32 8
      app/Service/ImportService.php

+ 32 - 8
app/Service/ImportService.php

@@ -193,19 +193,43 @@ class ImportService extends Service
 
     //导入入口
     public function importAll($data,$user){
+//        //不超时
+//        ini_set('max_execution_time', 0);
+//        //内存设置
+//        ini_set('memory_limit', -1);
+//        $reader = IOFactory::createReader('Xlsx');
+//        $reader->setReadDataOnly(true); // 只读取有数据的单元格
+//        $spreadsheet = $reader->load($data['file']);
+//        dd($spreadsheet);
+//        // 创建一个Reader对象
+//        $reader = IOFactory::createReader('Xlsx'); // 根据你的文件格式选择合适的reader
+//
+//// 加载Excel文件
+//        $spreadsheet = $reader->load($data['file']);
+//
+//// 获取第一个工作表
+//        $worksheet = $spreadsheet->getActiveSheet();
+//
+//// 获取总行数
+//        $totalRows = $worksheet->getHighestRow();dd($totalRows);
         if(empty($data['type'])) return [false,'缺少导入类型,导入失败'];
         if(! in_array($data['type'],self::$type)) return [false,'导入类型不存在,导入失败'];
         if(empty($data['file'])) return [false,'导入文件不能为空'];
 
-        $import = new ImportAll();
-        //设置导入人id
-        $import->setCrt($user['id']);
-        $import->setUser($user);
-        $import->setType($data['type']);
+        try {
+            $import = new ImportAll();
+            //设置导入人id
+            $import->setCrt($user['id']);
+            $import->setUser($user);
+            $import->setType($data['type']);
+
+            //导入
+            \Maatwebsite\Excel\Facades\Excel::import($import,$data['file']);
+            if($import->getMsg()) return [false, $import->getMsg()];
+        }catch (\Throwable $exception) {
+            return [false, $exception->getMessage() . ' (Code: ' . $exception->getCode() . ', Line: ' . $exception->getLine() . ')'];
+        }
 
-        //导入
-        \Maatwebsite\Excel\Facades\Excel::import($import,$data['file']);
-        if($import->getMsg()) return [false, $import->getMsg()];
         return [true, ''];
     }