我正在尝试了解如何从PHPExcel中的单元格中获取数据,但我不知道。我阅读了所有文档,并且我做了这个:
<?php
include('PHPExcel/Classes/PHPExcel/Reader/Excel2007.php');
class MyReadFilter implements PHPExcel_Reader_IReadFilter
{
public function readCell($column, $row, $worksheetName = '') {
// Read title row and rows 20 - 30
if ($row == 1 || ($row >= 20 && $row <= 30)) {
return true;
}
return false;
}
}
$objReader = new PHPExcel_Reader_Excel2007();
$objReader->setReadFilter( new MyReadFilter() );
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load("sample_mymails222.xlsx");
print_r($objPHPExcel);
?>
print_r显示非常大的数组。 我认为有一些函数可以从$ objPHPExcel中的单元格中获取数据。
怎么做?
感谢名单!
答案 0 :(得分:25)
对于其他想要更有帮助的答案的人,请按照上面示例中的代码,这里有一个快速片段,它将活动工作表解析为多维数组(此示例忽略了OP创建的ReadFilter)。
$data = array();
$worksheet = $objPHPExcel->getActiveSheet();
foreach ($worksheet->getRowIterator() as $row) {
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);
foreach ($cellIterator as $cell) {
$data[$cell->getRow()][$cell->getColumn()] = $cell->getValue();
}
}
var_dump($data);
顺便说一句我之所以说“更有帮助的答案”的原因是我第一次遇到PHPExcel文档(由6个单独的文档组成,没有真正类似API的参考文档)也很困难。
OP说他“阅读了所有文档”,但我猜测,像我一样,他通读了名为 PHPExcel用户文档 - 阅读电子表格文件.doc 的文件,其中解释了如何阅读在电子表格中,但不包括使用内容。要找到答案,你必须深入研究 PHPExcel开发者文档.doc 并进入第4部分(这是我在上面找到的例子)。
是的,我的错是不彻底,但显然这是一个反复出现的问题。 : - )
答案 1 :(得分:3)
用于阅读excel文件,您可以使用此
require_once('PHPExcel.php');
$input_file_type = PHPExcel_IOFactory::identify($excel_file);
$obj_reader = PHPExcel_IOFactory::createReader($input_file_type);
$obj_reader->setReadDataOnly(true);
$objPHPExcel = $obj_reader->load($excel_file);
$objWorksheet = $objPHPExcel->setActiveSheetIndex(0);
$highest_row = $objWorksheet->getHighestRow();
$highest_col = $objWorksheet->getHighestColumn();
//$highest_col_index = PHPExcel_Cell::columnIndexFromString($highest_col);
// start $row from 2, if you want to skip header
for ($counter = 2; $counter <= $highest_row; $counter++)
{
$row = $objWorksheet->rangeToArray('A'.$counter.':'.$highest_col.$counter);
$row = reset($row);
}
&#13;
答案 2 :(得分:2)
请阅读文档第4.5章(包含在PHPExcel下载包中)