我正在使用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();
答案 0 :(得分:0)
传递给您的闭包的$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;});
虽然完全未经测试!
答案 1 :(得分:-2)
我认为您需要像下面那样更新代码,
IEnumerable<string> GetMyList(string str)
{
foreach(Match m in Regex.Matches(str, @"(?:<td.*?>)(.*?)(?:<\/td>)"))
yield return m.Groups[1].Value;
}