php - 使用过滤器(块)给出错误
问题描述
我正在使用 Laravel-Excel 2.1。我正在尝试使用 chunk() 读取导入的大型 Excel 文件,但出现错误“方法 noHeading 不存在”。
我的原始代码
此代码可以正常读取导入的文件。
$column_number = 5;
$rows = Excel::load('storage/app/public/upload/myfiles.xlsx', function($reader) use ($column_number)
{
$reader->noHeading();
$reader->takeColumns($column_number);
$reader->setDateFormat('d-m-Y');
})->get();
在文档中使用块之后
此代码给出Method noHeading does not exist.
错误。注意我添加filter('chunk')
和chunk(250
$column_number = 5;
$rows = Excel::filter('chunk')->load('storage/app/public/upload/myfiles.xlsx')->chunk(250, function($reader) use ($column_number)
{
$reader->noHeading();
$reader->takeColumns($column_number);
$reader->setDateFormat('d-m-Y');
})->get();
解决方案
传递给您的闭包的$reader
变量是 的一个实例ExcelParser
,而LaravelExcelReader
不是没有该noHeading()
方法。Excel::filter()
确实返回了一个读者,所以你应该能够做到这一点:
$column_number = 5;
$rows = Excel::filter('chunk')
->noHeading()
->takeColumns($column_number)
->setDateFormat('d-m-Y');
->load('storage/app/public/upload/myfiles.xlsx')
->chunk(250, function($results) {return $results;});
虽然完全未经测试!
推荐阅读
- android - 类型转换器不工作
- google-sheets - 无法在 Google 表格中使用 MINUS 函数解析公式
- c++ - TCP 服务器不等待客户端响应,如何解决这个问题?
- javascript - Javascript忽略上/下键上的某些列表项
- r - Linux Centos 7 上的 dplyr 0.7.5,选择功能不起作用
- openstreetmap - 如何找到有天桥的新节点?
- ionic3 - 离子浏览器版本
- javascript - MenuButton 不会打开菜单
- maven - 从 IntelliJ 运行 Maven 黄瓜测试
- ansible - ansible-galaxy install 可以初始化子模块吗?