调用未定义的方法Maatwebsite \ Excel \ Excel :: load()

时间:2018-03-25 06:20:21

标签: php excel laravel laravel-5 maatwebsite-excel

我正在尝试使用maatwebsite 3.0导入excel文件(.xlsx)。如何解决此错误

  

调用未定义的方法Maatwebsite \ Excel \ Excel :: load()

我的控制器

public function importsave(Request $request)
{
   if($request->hasFile('excel'))
    {
        $path = $request->file('excel')->getRealPath();
        $data= Excel::load($path, function($reader) {})->get();
        if(!empty($data) && $data->count())
        {
            foreach($data->toArray() as $key=>$value)
            {
                if(!empty($value))
                {
                    Employee::insert($value);
                }
            }
        }
    }
}

5 个答案:

答案 0 :(得分:15)

该软件包的版本 3.0 尚未处理导入。此功能的发布日期未知。有关详情,请参阅此帖子:https://medium.com/@maatwebsite/laravel-excel-lessons-learned-7fee2812551

我建议您切换到版本2. *

答案 1 :(得分:6)

class CategoricalCrossEntropy(Loss): def __init__(self, epsilon: float = 0.001) -> None: self.epsilon = epsilon def loss(self, target: Tensor, predicted: Tensor) -> Tensor: return -np.sum(target * np.log(predicted + self.epsilon)) def grad(self, target: Tensor, predicted: Tensor) -> Tensor: # print("PREDICTED: ",predicted) # print("TARGET: ", target) y = -(target / (predicted + self.epsilon)) # print("RETURN VALUE: ", y) return y

^3.0版不支持加载。
首先删除maatwebsite/excel文件。

通过从以下位置更改config/excel.php文件来降级maatwebsite/excel版本 composer.json"maatwebsite/excel": "^3.1",并执行“ composer update”。

如果出现错误:

2.1版本中未定义的类常量'XLSX'

这是您要做的。
在降级之前删除config / excel.php,然后执行作曲家更新。

答案 2 :(得分:2)

您好,在版本3中删除了加载方法,因此请切换回版本2,因此请尝试使用此命令,

composer require "maatwebsite/excel:~2.1.0"

答案 3 :(得分:0)

Laravel Excel 3.0版不处理导入。

您还可以使用与导入配合使用的替代软件包,例如:

两个都处理导入。

您还可以切换到版本2,但这意味着使用旧版本的库。

答案 4 :(得分:0)

所有Laravel Excel 2. *方法已被弃用,将无法在3.0中使用。

Excel::load() is removed and replaced by Excel::import($yourImport)
Excel::create() is removed and replaced by Excel::download/Excel::store($yourExport)
Excel::create()->string('xlsx') is removed an replaced by Excel::raw($yourExport, Excel::XLSX)

3.0不提供用于样式设置的便捷方法,建议您使用PhpSpreadsheets本机方法。