做个有深度的程序员 — YuanGe
hpSpreadsheet读取excel数据
hpSpreadsheet读取excel数据

hpSpreadsheet读取excel数据

function getExcelData($inputfile)
{
    //根据类型创建合适的读取器对象  这里写死了
    $objread = IOFactory::createreader('Xlsx');
    // ./upload/supplement_order/xlsx_ledge/5025-补单导入模板0721.xlsx
    $objread->setReadDataOnly(TRUE);
    $objspreadsheet = $objread->load($inputfile); //读文件
    $worksheet = $objspreadsheet->getActiveSheet();  
    $highestRow = $worksheet->getHighestRow(); // 总行数1, 2,3
    $rows = array(); //记录数据的集合


    //循环去读取数据  比如当前第一行即获取A1 F1 组成一个数组
    for ($rowIndex = 2; $rowIndex <= $highestRow; $rowIndex++) {

        //判空是因为如果某一个单元格是空的,我们就不要加到数据集中了
        if ($worksheet->getCell("F{$rowIndex}")->getValue()!=null){
            $row['order_id'] = $worksheet->getCell("A{$rowIndex}")->getValue();
            $row['express_id'] = $worksheet->getCell("F{$rowIndex}")->getValue();
            $rows[] = $row;
        }
    }
    return $rows;
}

getExcelData()方法传入 文件路径就行

$_FILES["file"]["tmp_name"] 获取到前端上传的文件的临时路径。临时路径当你操作完后,该文件不会保存
$data = getExcelData($_FILES["file"]["tmp_name"]);

获取到的数据就是这样的

[
   ["order_id":values,"express_id":values]
   ["order_id":values,"express_id":values]
]

获取到数据,我们就可以进行我们的操作,UPDETE、INSERT INTO 等等。

-->