我正在尝试使用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);
}
}
}
}
}
答案 0 :(得分:15)
我建议您切换到版本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本机方法。