你可以根据 Laravel 中的选择导出 excel 电子表格吗?
Posted
技术标签:
【中文标题】你可以根据 Laravel 中的选择导出 excel 电子表格吗?【英文标题】:Can you export excel spreadsheets based on a selection in Laravel? 【发布时间】:2021-07-27 15:01:49 【问题描述】:我有一个单选组,可以过滤我的表格以显示项目是活动的、非活动的还是两者兼而有之。还有一个按钮,我用来导出表格的 excel 文档。我当前的按钮下载所有记录。我想要的是基于过滤器导出文档,因此如果选择并显示活动并按下下载按钮,则只会导出活动记录
我的代码: 控制器:
public function filter()
$energy = Energy::where('isredundant', 0)->paginate(10);
return view('admin.staff', ['staff1' => $staff1]);
public function filtered()
$energy = Energy::where('isredundant', 1)->paginate(10);
return view('admin.staff', ['staff1' => $staff1]);
public function export()
return Excel::download(new UsersExport, 'allrecords.xlsx');
public function export()
return Excel::download(new UsersExport, 'AllReport.xlsx');
public function exportactive()
return Excel::download(new UsersExportactive, 'ActiveRecords.xlsx');
public function exportredundant()
return Excel::download(new UsersExportredundant, 'RedundantRecords.xlsx');
我的按钮:
<div> <a class="btn btn-warning" href="/export_excel/excel">Generate Report</a></div>
我尝试使用 3 个不同的按钮,但看起来很乱。我敢肯定有一个更简单的方法
【问题讨论】:
对于初学者,您的两个方法具有相同的名称:export
。这需要解决。
我想通了
欢迎,为了改善您在 SO 上的体验,请 take the tour 并阅读 how to ask、On Topic question,然后查看 Question Check list、perfect question 以及如何创建 @987654326 @
从昨天开始,来自另一个帐户的问题敲响了 :)
你能链接这样的问题吗?本来会有更多帮助
【参考方案1】:
<input type="radio" name="download" id="x86"/>active<br />
<input type="radio" name="download" id="x64"/>inactive<br />
<input type="button" id="download" value="download"/>
var radio_x86 = document.getElementById('x86');
var radio_x64 = document.getElementById('x64');
var button = document.getElementById('download');
button.onclick = downloadFile;
function downloadFile()
if (radio_x86.checked)
window.open("/app/test");
else if (radio_x64.checked)
window.open("/app/test1");
else
alert("Please check one of the options first.");
【讨论】:
您确实需要解决您的命名方案...您有两个具有一个名称的收音机和一个带有该名称 ID 的按钮。它不会导致编程问题,但它只是令人困惑。更不用说您使用 Windows 操作系统 32 位和 64 位命名无线电(x86 和 x64),但似乎这些无线电与活动和非活动有关。我猜你从某个地方复制了这个代码示例并且没有更新名称。 这里的问题和答案之间的联系非常微妙! @JustCarty 命名方案已更改,这是出于测试目的,因此名称不是真正值得关注的原因【参考方案2】:你可以试试这个方法
在控制器中
public function exportactive(Request $request)
return Excel::download(new UsersExportactive($request->ids), 'ActiveRecords.xlsx');
在 UsersExportactive() 类中
private $ids;
public function __construct($ids)
$this->ids = $ids;
并在 UsersExportactive() 类中进行类似的查询
Model::whereIn('id',$ids)->get();
并在视图中使用您的导出按钮作为提交按钮,如下所示
<form>
<input type="checkbox" name="ids[]" id="1"/>active
<input type="checkbox" name="ids[]" id="2"/>inactive
<input type="submit" id="download" value="download Excel"/>
</form>
【讨论】:
以上是关于你可以根据 Laravel 中的选择导出 excel 电子表格吗?的主要内容,如果未能解决你的问题,请参考以下文章
PHP laravel框架 导入导出excel ,phpexcel数据导出分多个工作区(sheet)
java实现,根据页面上的复选框选择项,来确定导出Excel数据