<?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的材料/文档?或任何提供各种方法描述及其作用的网站?
答案 0 :(得分:2)
API文档(可在/ Documentation / API中找到,或在http://www.cmsws.com/examples/applications/phpexcel/Documentation/API/PHPExcel/PHPExcel.html在线获得)提供PHPExcel中可用的所有类/方法的详细信息
rangeToArray()方法接受标准Excel样式范围作为字符串,冒号分隔范围的左上角和右下角单元格(例如A1:B2
或A1: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/>";
}