使用phpExcel获取Choice的任意2列

时间:2013-12-17 18:26:53

标签: php phpexcel

<?php
            $name=$_FILES['u_file']['tmp_name'];
                try {
                    $inputFileType = PHPExcel_IOFactory::identify($name);
                    $objReader = PHPExcel_IOFactory::createReader($inputFileType);
                    $objPHPExcel = $objReader->load($name);
                } catch(Exception $e) {
                    die('Error loading file "'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage());
                }
            $sheet = $objPHPExcel->getSheet(0); 
            $highestRow = $sheet->getHighestRow(); 
            $highestColumn = $sheet->getHighestColumn();
            for ($row = 2; $row <= $highestRow; $row++){ 
                $rowData= $sheet->rangeToArray('A' . $row );
            while(list($rno,$atten)=each($rowData[0]))
                echo"{$rno} -> {$atten} <br/>";
            }
        ?>

我正在使用上面的代码来打印特定列的详细信息。是否可以在上面的代码中打印任何2列的详细信息? 例如,如果我想要打印属于列C和E的行,那么应该是rangeToArray Fucntion中的参数。

我正在学习php。是否有PhpExcel的材料/文档?或任何提供各种方法描述及其作用的网站?

1 个答案:

答案 0 :(得分:2)

API文档(可在/ Documentation / API中找到,或在http://www.cmsws.com/examples/applications/phpexcel/Documentation/API/PHPExcel/PHPExcel.html在线获得)提供PHPExcel中可用的所有类/方法的详细信息

rangeToArray()方法接受标准Excel样式范围作为字符串,冒号分隔范围的左上角和右下角单元格(例如A1:B2A1:A65535)< / p>

修改

$rowDataA = ;
$rowDataE = $sheet->rangeToArray('E2:E' . $highestRow);

$mi = new MultipleIterator(MultipleIterator::MIT_NEED_ALL | MultipleIterator::MIT_KEYS_ASSOC);
$mi->attachIterator(new ArrayIterator(
    PHPExcel_Calculation_Functions::flattenArray(
        $sheet->rangeToArray('A2:A' . $highestRow)
    ), 
    'cellA'
);
$mi->attachIterator(new ArrayIterator(
    PHPExcel_Calculation_Functions::flattenArray(
        $sheet->rangeToArray('E2:E' . $highestRow)
    ), 
    'cellE'
);
foreach($mi as $details) {
echo $details['cellA'], ' - ', $details['cellE'], '<br />';
}

如果你想使用rangeToArray来获取值:

for ($row = 2; $row <= $highestRow; $row++){ 
    $cellA = $sheet->getCell('A' . $row )->getValue();
    $cellE = $sheet->getCell('E' . $row )->getValue();
    echo "{$cellA} -> {$cellE} <br/>";
}