PHPExcel - 仅加载过滤后的数据

时间:2015-06-12 23:23:26

标签: php phpexcel

我的文件类似this

我想在此示例中仅加载两个可见行。 我不知道怎么做。

$reader = new PHPExcel_Reader_Excel2007();
$excel = $reader->load($_FILES['plik']['tmp_name']);
$data = $excel->getActiveSheet()->toArray(null, true,true,true); 

在PHPExcel中加载文件时,显示所有8769行。

我必须这样做,因为过滤后的数据总是不同的。

你知道怎么办?

2 个答案:

答案 0 :(得分:1)

如果你只想要可见的行,那么你需要编写一些代码来循环遍历行,只选择那些可见的行

类似的东西:

$reader = new PHPExcel_Reader_Excel2007();
$excel = $reader->load($_FILES['plik']['tmp_name']);
$highestColumn = $excel->getActiveSheet()->getHighestColumn();
$data = [];
foreach ($excel->getActiveSheet()->getRowIterator() as $row) {
    if ($excel->getActiveSheet()->getRowDimension($row->getIndex())->getVisible()) {
        $data[] = $excel->getActiveSheet()
            ->rangeToArray('A' .$row->getIndex().':'.$highestColumn.$row->getIndex());
    }
}

答案 1 :(得分:1)

非常感谢!

很快将“getIndex()”交换为“getRowIndex()”

$reader = new PHPExcel_Reader_Excel2007();
$excel = $reader->load($_FILES['plik']['tmp_name']);
$data = [];
foreach ($excel->getActiveSheet()->getRowIterator() as $row) {
if ($excel->getActiveSheet()->getRowDimension($row->getRowIndex())->getVisible()) {
   $data[] = $excel->getActiveSheet()->rangeToArray('A' .$row->getRowIndex().':'.'BB'.$row->getRowIndex());
   }
}