从excel PHP中获取列字母


Get the column letter from excel PHP

我正试图获得列信。

takes_column(item)是一个应该返回字母的方法。这样做的原因是在我的数据库中写右列。

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();
    }
}

将列名映射到查找数组主循环之前:

$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',
]

然后你可以对循环中的headers数组进行查找:

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();
}