只想使用PHPExcel从Excel文件中打印单元格数据?

4
<?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 #09</title>

</head>
<body>


<?php

/** Include path **/
set_include_path(get_include_path() . PATH_SEPARATOR . '../../../Classes/');

/** PHPExcel_IOFactory */
include 'C:\webserver\www\Classes\PHPExcel\IOFactory.php';


$inputFileType = 'Excel5';
//  $inputFileType = 'Excel2007';
//  $inputFileType = 'Excel2003XML';
//  $inputFileType = 'OOCalc';
//  $inputFileType = 'Gnumeric';
$inputFileName = './sampleData/Book1.xls';
$sheetname = 'Data Sheet #3';


class MyReadFilter implements PHPExcel_Reader_IReadFilter
{
    public function readCell($column, $row, $worksheetName = '') {

        if ($row >= 1 && $row <= 1) {
            if (in_array($column,range('A','A'))) {
                return true;
            }
        }
        return false;
    }
}

$filterSubset = new MyReadFilter();

$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objReader->setLoadSheetsOnly($sheetname);
$objReader->setReadFilter($filterSubset);
$objPHPExcel = $objReader->load($inputFileName);
$sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true);
var_dump($sheetData);


?>
<body>
</html>

当我运行上述代码时,它会给我以下输出。
array(1) { [1]=> array(1) { ["A"]=> string(6) "ABCDEF" } }

在上面的输出中,ABCDEF是第一个单元格的数据。所以我只想要ABCDEF,而不是如上所示的其他内容。

2个回答

4
那是因为您请求PHPExcel将整个工作表作为数组返回。
如果您只需要单元格A1的值,请使用:
$objPHPExcel->getActiveSheet()->getCell('A1')->getValue();

替代

$objPHPExcel->getActiveSheet()->toArray(null,true,true,true);

更多信息请参考文档,在这种情况下是文件“PHPExcel开发者文档.pdf”。
您还可以完全删除读取过滤器。单元格以惰性方式读取,因此如果您直接访问A1单元格,则不需要使用读取过滤器来节省任何内容。

string(6) "ABCDEF" 这个输出是我使用你上面的代码得到的。 - Pooja Desai
请了解一下 var_dump()echo 之间的区别。 - AndreKR

0

include 'C:\webserver\www\Classes\PHPExcel\IOFactory.php';

这是我在这个文件中包含的一个文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接