我需要使用PHPExcel中使用的类五次来改变其内容,如下所示。 但这在第二次迭代中失败了..请帮我解决这个问题?
for($z=1;$z<=5;$z++)
{
class MyReadFilter implements PHPExcel_Reader_IReadFilter
{
public function readCell($column, $row, $worksheetName = '') {
if ($row > ($z-1)*1000 && $row <= $z*1000)
{
return true;
}
return false;
}
}
$objReader = new PHPExcel_Reader_Excel2007();
//setting filter to read only limited records..
$objReader->setReadFilter( new MyReadFilter() );
简单来说,我需要拨打$objReader->setReadFilter(new MyReadFilter());
五次
答案 0 :(得分:1)
我不知道z
是什么以及何时应该迭代。
我可以想到太多的解决方案,其中一些应该对你有好处,这取决于你想要做什么,但我不知道你是否有足够的OOP,可能你应该先学习一些书或教程关于基础知识。
这是一个可行的解决方案:
class MyReadFilter implements PHPExcel_Reader_IReadFilter {
public function readCell($column, $row, $worksheetName='') {
for ($z = 1; $z <= 5; $z++) {
if ($row > ($z - 1) * 1000 && $row <= $z * 1000) {
return true;
}
}
return false;
}
}
$objReader=new PHPExcel_Reader_Excel2007();
//setting filter to read only limited records..
$objReader->setReadFilter(new MyReadFilter());
这是另一种可能的解决方案,如果你想用不同的结果多次读取文件
class MyReadFilter implements PHPExcel_Reader_IReadFilter {
private $z;
public function __construct($z){
$this->z=$z;
}
public function readCell($column, $row, $worksheetName='') {
if ($row > ($this->z - 1) * 1000 && $row <= $this->z * 1000) {
return true;
}
return false;
}
}
$objReader=new PHPExcel_Reader_Excel2007();
for ($z = 1; $z <= 5; $z++) {
//setting filter to read only limited records..
$objReader->setReadFilter(new MyReadFilter($z));
//..whatever else
}
如果你知道你需要什么,我想你会明白你需要哪一个。如果不这样做,我们需要更多细节