Nik*_*aut 6 excel laravel laravel-excel maatwebsite-excel
我正在尝试使用最新版本的Laravel-Excel (3.1.9)将 Excel 文件转换为数组
下面的代码将下载文件:
return Excel::download(new SalesOrderExport('columns'),'test.xlsx')
Run Code Online (Sandbox Code Playgroud)
但我需要将其转换为仅获取数组。此时我不想将此 Excel 数据存储在数据库中。
我尝试使用下面的代码,但它不起作用,因为该load方法在版本 3 中不可用。
Excel::load($request->file('sampledata'), function ($reader) {
return response()->json($reader);
});
Run Code Online (Sandbox Code Playgroud)
请分享您对如何从 Excel 获取数组的想法。
Nik*_*aut 10
我和@narayan 努力将请求的 excel 文件放入数组。现在我可以使用以下代码正确获取数组
$rows = Excel::toArray(new SalesOrderImport, $request->file('sampledata'));
Run Code Online (Sandbox Code Playgroud)
在我的 SalesOrderExport 类中,我只有默认函数,这是抽象方法所必需的。
namespace App\Exports;
use App\SalesOrder;
use Maatwebsite\Excel\Concerns\FromCollection;
class SalesOrderExport implements FromCollection
{
public function collection()
{
return SalesOrder::all();
}
}
Run Code Online (Sandbox Code Playgroud)
我的控制器代码
public function importTest(Request $request)
{
$rows = Excel::toArray(new SalesOrderImport, $request->file('sampledata'));
return response()->json(["rows"=>$rows]);
}
Run Code Online (Sandbox Code Playgroud)
在 HTML 中
<input class="" type="file" name="sampledata" id="sampledata">
Run Code Online (Sandbox Code Playgroud)
我已经创建了这个导出
php artisan make:import SalesOrder
Run Code Online (Sandbox Code Playgroud)
附上相关图片
我添加它是希望有人能够为此获得其他类型的解决方案。\n版本 -"maatwebsite/excel": "^3.1"
在Controller
$data = Excel::toArray(new UsersImport(), $request->file);\nRun Code Online (Sandbox Code Playgroud)\n在UsersImport
<?php\n namespace App\\Imports;\n use Illuminate\\Support\\Collection;\n use Maatwebsite\\Excel\\Concerns\\ToCollection;\n\n class UsersImport implements ToCollection\n {\n public function collection(Collection $rows)\n {\n }\n }\nRun Code Online (Sandbox Code Playgroud)\nJson 数组结果
\narray:2 [\xe2\x96\xbc\n 0 => array:2 [\xe2\x96\xbc\n 0 => "+126785XXXXX"\n 1 => "Jhon"\n ]\n 1 => array:2 [\xe2\x96\xbc\n 0 => "+126784XXXXX"\n 1 => "Doe"\n ]\n ]\nRun Code Online (Sandbox Code Playgroud)\n还有一个奖励, \n现在假设您只需要电话号码,然后在控制器中创建一个自定义数组 -
\n$data = Excel::toArray(new UsersImport(), $request->file);\n$phoneNumbersData= [];\nforeach ($data[0] as $key => $value) {\n $phoneNumbersData[] = $value[0];\n}\nreturn $phoneNumbersData;\nRun Code Online (Sandbox Code Playgroud)\n希望这会对某人有所帮助。
\n