在Php Excel中使用列名获取单元格值

use*_*123 6 php phpexcel

这是我的excel表 Excel表格 它有很多专栏,但我很容易理解这个问题

我正在使用PHP Excel阅读Excel Sheet 并使用rangeToArray()从excel中获取所有行但我希望输出为

列为键:单元格值为值

目前我的输出为

Col Index:细胞价值

所以我的问题是哪个是Php Excel中的函数,它返回带有列名的数组和它的Cell值?

try {
    $inputFileType = PHPExcel_IOFactory::identify($inputFileName);
    $objReader = PHPExcel_IOFactory::createReader($inputFileType);
    $objPHPExcel = $objReader->load($inputFileName);
} catch(Exception $e) {
    die('Error loading file"'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage());
}
//  Get worksheet dimensions
$sheet = $objPHPExcel->getSheet(0); 
$highestRow = $sheet->getHighestRow(); 
$highestColumn = $sheet->getHighestColumn();
for ($row = 2; $row <= $highestRow; $row++){ 
    //  Read a row of data into an array
    $rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row,
                                            NULL,
                                            TRUE,
                                            FALSE);
    printArr($rowData);
    printArr("-------");

}
Run Code Online (Sandbox Code Playgroud)

我输出为

Array
(
    [0] => Array
        (
            [0] => 27745186
            [1] => 42058
            [2] => DELL INTERNATIONAL SERVICES INDIA PVT LTD
            ...
            ...
         )
    [1] => Array
        (
            [0] => 27745186
            [1] => 42058
            [2] => DELL INTERNATIONAL SERVICES INDIA PVT LTD
            ...
            ...
         )
)
Run Code Online (Sandbox Code Playgroud)

欲望输出

Array
(
    [0] => Array
        (
            [Invoice_no] => 27745186
            [Invoice Date] => 42058
            [Description] => DELL INTERNATIONAL SERVICES INDIA PVT LTD
            ...
            ...
         )
    [1] => Array
        (
            [Invoice_no] => 27745186
            [Invoice Date] => 42058
            [Description] => DELL INTERNATIONAL SERVICES INDIA PVT LTD
            ...
            ...
         )
)
Run Code Online (Sandbox Code Playgroud)

Mar*_*ker 11

PHPExcel没有什么神奇之处,但在标准PHP中很容易做到

从第一行中检索所需的标题/键

$headings = $sheet->rangeToArray('A1:' . $highestColumn . 1,
                                            NULL,
                                            TRUE,
                                            FALSE);
Run Code Online (Sandbox Code Playgroud)

然后将标准数字键重置为每个数据行的读取循环内的标题值

for ($row = 2; $row <= $highestRow; $row++){ 
    //  Read a row of data into an array
    $rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row,
                                            NULL,
                                            TRUE,
                                            FALSE);
    $rowData[0] = array_combine($headings[0], $rowData[0]);
}
Run Code Online (Sandbox Code Playgroud)