我想收到专栏信。
takes_column(item)是一个应该返回字母的方法。这样做的原因是在我的数据库中写入rigth列。
for ($i=2;$i<=$filas;$i++){
$_DATOS_EXCEL[$i]['item'] = $objPHPExcel->getActiveSheet()->getCell(takes_column(item).$i)->getCalculatedValue();
$_DATOS_EXCEL[$i]['warehouse'] = $objPHPExcel->getActiveSheet()->getCell(takes_column(item).$i)->getCalculatedValue();
$_DATOS_EXCEL[$i]['item_description'] = $objPHPExcel->getActiveSheet()->getCell(takes_column(item).$i)->getCalculatedValue();
}
}
function takes_column($input)
{
$row = $this->objPHPExcel->getActiveSheet()->getRowIterator(0)->current();
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);
foreach ($cellIterator as $cell) {
if ($cell->getValue() = $input){
return $cell->getColumn();
}
}
答案 0 :(得分:1)
在 主循环之前将列名称映射到查找数组 :
$headingData = $objPHPExcel->getActiveSheet()
->rangeToArray(
'A1:A' . $objPHPExcel->getActiveSheet()->getHighestColumn(),
null, true, true, true
);
$headings = array_flip($headingData[1]);
这应该给你一个类似的数组:
[
'item' => 'A',
'warehouse' => 'B',
'item_description' => 'C',
]
然后,您可以在循环中对该头数组进行查找:
for ($i=2;$i<=$filas;$i++){
$_DATOS_EXCEL[$i]['item'] = $objPHPExcel->getActiveSheet()->getCell($headings['item'].$i)->getCalculatedValue();
$_DATOS_EXCEL[$i]['warehouse'] = $objPHPExcel->getActiveSheet()->getCell($headings['warehouse'].$i)->getCalculatedValue();
$_DATOS_EXCEL[$i]['item_description'] = $objPHPExcel->getActiveSheet()->getCell($headings['item_description'].$i)->getCalculatedValue();
}