excel在线阅读php,PHPExcel-使用示例阅读器

我刚刚开始使用PHPExcel.我的大型电子表格无法全部加载到内存中(内存失败).为了只加载我需要的工作表的各个部分,我尝试使用文档中提供的MyReadFilter代码,但是该代码比我高一点,我希望有人可以帮助我理解它.

从PHPExcel文档中,这里是函数:

class ReadFilter implements PHPExcel_Reader_IReadFilter

{

private $_startRow = 0;

private $_endRow = 0;

private $_columns = array();

/** Get the list of rows and columns to read */

public function __construct($startRow, $endRow, $columns) {

$this->_startRow = $startRow;

$this->_endRow = $endRow;

$this->_columns = $columns;

}

public function readCell($column, $row, $worksheetName = '') {

// Only read the rows and columns that were configured

if ($row >= $this->_startRow && $row <= $this->_endRow) {

if (in_array($column,$this->_columns)) {

return true;

}

}

return false;

}

}

我正在使用以下行来调用PHPExcel

// Get the selected Excel file, passed from form

$testFile = $_FILES['upload_test']['tmp_name'];

// Identify the file type of the selected file

$inputFileType = PHPExcel_IOFactory::identify($testFile);

// Create a reader object of the correct file type

$objReader = PHPExcel_IOFactory::createReader($inputFileType);

// Instantiate the filter class and apply it to the reader object

$filterSubset = new ReadFilter(1,1000,range('A','Z'));

$objReader->setReadFilter($filterSubset);

// Load the selected file into the reader

$objWorkbook = $objReader->load($testFile);

我正在使用以下语法从生成的工作表对象中检索数据:

$someValue= $objWorkbook->getSheet($idx)->getCell('B11')->getCalculatedValue();

我肯定我还会遇到其他问题,但是我的第一个问题是关于调用该函数的.如果我将上面的行从:

$filterSubset = new ReadFilter(1,1000,range('A','Z'));

至:

$filterSubset = new ReadFilter(1,1000,range('A','AA')); //Last column changed

整个读取失败.实际上,我只需要从B列中计算出的值,但是该列的引用范围远至AS列,因此我也需要阅读它们.有人可以告诉我如何使用此功能读取Z列或对其进行修改吗?理想情况下,我只想阅读从B到AS散布的大约12列的内容,但我也无法弄清楚.

非常感谢您的帮助.

解决方法:

范围(‘A’,’AA’);无效,请尝试创建您自己的自定义范围

echo "

";

print_r(xrange('AA', 'ZZ'));

使用功能

function xrange($start, $end, $limit = 1000) {

$l = array();

while ($start !== $end && count($l) < $limit) {

$l[] = $start;

$start ++;

}

$l[] = $end;

return $l;

}

标签:filter,spreadsheet,phpexcel,php

来源: https://codeday.me/bug/20191031/1975841.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值