无法使用PHPexcel脚本将数据或可配置的读取筛选器读取到指定的列和行

无法使用PHPexcel脚本将数据或可配置的读取筛选器读取到指定的列和行,php,phpexcel,Php,Phpexcel,我尝试使用一个使用PHPExcel脚本的示例文件从excel文件中提取数据。 数据提取已成功完成,但未受到限制 关于该问题的详细信息:该文件(如下所述)绑定为将特定行数的excel文件读取到范围内的列,即('a','Z')。行被计算在内,但列不被计算在内。对于列的任何指定范围,它最多只占用O列。即使我已经测试过,以提供更多的列范围,它显示从列“A”到列“O”的范围,但不超过“O” 谁能把问题分类,如果我错了就告诉我 等待您宝贵的建议和意见 等待最早的答复 提前感谢, 吉姆森·何塞 所有代码如下所

我尝试使用一个使用PHPExcel脚本的示例文件从excel文件中提取数据。 数据提取已成功完成,但未受到限制

关于该问题的详细信息:该文件(如下所述)绑定为将特定行数的excel文件读取到范围内的列,即('a','Z')。行被计算在内,但列不被计算在内。对于列的任何指定范围,它最多只占用O列。即使我已经测试过,以提供更多的列范围,它显示从列“A”到列“O”的范围,但不超过“O”

谁能把问题分类,如果我错了就告诉我

等待您宝贵的建议和意见

等待最早的答复

提前感谢,

吉姆森·何塞

所有代码如下所示

<?php

error_reporting(E_ALL);
set_time_limit(0);

date_default_timezone_set('Europe/London');

?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<title>PHPExcel Reader Example #10</title>

</head>
<body>

<h1>PHPExcel Reader Example #10</h1>
<h2>Simple File Reader Using a Configurable Read Filter</h2>
<?php

set_include_path(get_include_path() . PATH_SEPARATOR . '/import/Classes/');

/** PHPExcel_IOFactory */
include 'PHPExcel/IOFactory.php';

$inputFileType = 'Excel2007';
$inputFileName = './book2.xlsx';
$sheetname = 'Sheet2';

class MyReadFilter implements PHPExcel_Reader_IReadFilter
{
    private $_startRow = 0;

    private $_endRow = 0;

    private $_columns = array();

    public function __construct($startRow, $endRow, $columns) {
        $this->_startRow    = $startRow;
        $this->_endRow      = $endRow;
        $this->_columns     = $columns;
    }

    public function readCell($column, $row, $worksheetName = '') {
        if ($row >= $this->_startRow && $row <= $this->_endRow) {
            if (in_array($column,$this->_columns)) {
                return true;
            }
        }
        return false;
    }
}

$filterSubset = new MyReadFilter(9,15,range('G','K'));

echo 'Loading file ',pathinfo($inputFileName,PATHINFO_BASENAME),' using IOFactory with a defined reader type of 

',$inputFileType,'<br />';
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
echo 'Loading Sheet "',$sheetname,'" only<br />';
$objReader->setLoadSheetsOnly($sheetname);
echo 'Loading Sheet using configurable filter<br />';
$objReader->setReadFilter($filterSubset);
$objPHPExcel = $objReader->load($inputFileName);

echo '<hr />';

$sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true);
var_dump($sheetData);
?>
<body>
</html>

PHPExcel阅读器示例#10
PHPExcel阅读器示例#10
使用可配置读取筛选器的简单文件读取器
toArray()方法将显示从单元格A1到加载最高的行和列的工作表,因此,即使尚未加载行1-8,它们仍将在返回的数组中显示为空单元格;同样,列A-F也将在数组中显示为空单元格

请注意,仍为工作表中的所有单元格加载样式,而不仅仅是那些在读取筛选范围内的单元格。这是因为所有样式都是在加载单元格之前加载的,并且读取过滤器仅检查单元格

如果要返回仅包含通过筛选器加载的单元格的数组,应使用rangeToArray()方法


谢谢你,马克。我们将注意到这一点。我会做出必要的改变。很抱歉延迟回复。
$sheetData = $objPHPExcel->getActiveSheet()->rangeToArray('G9:K15',null,true,true,true);