excel - 如何在 maatwebsite 中获取 excel 到数组
问题描述
我正在尝试使用最新版本的Laravel-Excel (3.1.9)将 Excel 文件转换为数组
下面的代码将下载文件:
return Excel::download(new SalesOrderExport('columns'),'test.xlsx')
但我需要将其转换为仅获取一个数组。此时我不想将此 Excel 数据存储在数据库中。
我尝试使用下面的代码,但它不起作用,因为该load
方法在版本 3 中不可用。
Excel::load($request->file('sampledata'), function ($reader) {
return response()->json($reader);
});
请分享您对如何从 Excel 获取数组的想法。
解决方案
我和@narayan 努力将请求的 excel 文件放入数组中。现在我可以使用以下代码正确获取数组
$rows = Excel::toArray(new SalesOrderImport, $request->file('sampledata'));
在我的 SalesOrderExport 类中,我只有默认函数,这是抽象方法所必需的。
namespace App\Exports;
use App\SalesOrder;
use Maatwebsite\Excel\Concerns\FromCollection;
class SalesOrderExport implements FromCollection
{
public function collection()
{
return SalesOrder::all();
}
}
我的控制器代码
public function importTest(Request $request)
{
$rows = Excel::toArray(new SalesOrderImport, $request->file('sampledata'));
return response()->json(["rows"=>$rows]);
}
在 HTML 中
<input class="" type="file" name="sampledata" id="sampledata">
我已经创建了这个导出
php artisan make:import SalesOrder
附上相关图片
推荐阅读
- javascript - 检查所需模块的类型以及它是否根据其类型返回正确的对象
- python - 如何获得基于时间的高标准偏差数据的置信区间?
- javascript - JavaScript 对字典数组进行排序
- android - 如何将片段目标绑定到底部导航栏中的菜单项?
- javascript - Alexa 无法连接
- php - 如何将数据从 PHP 传递到 PHP 文件
- android - 我需要更改 android 小部件中按钮的颜色
- laravel - laravel 中的 Jstree
- machine-learning - 交叉验证的实现
- javascript - 部分文本未显示在屏幕上。JavaScript 初学者