Symfony 2:在dabase中导入excel文件(PHPExcel)

Symfony 2:在dabase中导入excel文件(PHPExcel),php,symfony,Php,Symfony,我需要上传一个excel文件,并将数据库中的内容导入到相关表中 我已经创建了一个脚本来导入它。下面的脚本工作正常 $excelObj = $this->get('phpexcel')->createPHPExcelObject($path_file); $sheet = $excelObj->getActiveSheet()->toArray(null,true,true,true); $em = $this->getDoctrine()->getMa

我需要上传一个excel文件,并将数据库中的内容导入到相关表中

我已经创建了一个脚本来导入它。下面的脚本工作正常

 $excelObj = $this->get('phpexcel')->createPHPExcelObject($path_file);
 $sheet = $excelObj->getActiveSheet()->toArray(null,true,true,true);

 $em = $this->getDoctrine()->getManager();

 //READ EXCEL FILE CONTENT
 foreach($sheet as $i=>$row) {
 if($i !== 1) {
$account = $em->getRepository('ExcelBundle:Users')->findOneByUsername($row['A']);
                    if(!$account) {
                        $user = new Users();
                    }

                    $user->setName($row['A']); 
                    $user->setUsername($row['B']);
                    $user->setEmail($row['C']);
                    //... and so on


                    $em->persist($user);
                    $em->flush();
  }
  }
现在,我需要导入该行的名称,而不是导入excel文件的A行、B行…等。
名称用户名电子邮件…等等

 $user->setName($row['name']); 
 $user->setUsername($row['username']);
 $user->setEmail($row['email']);

我该怎么做呢?

因此您需要将标题行(第1行)映射到后续每一行中的实际值

foreach($sheet as $i=>$row) {
    if($i == 1) {
        $headings = $row;
    } else {
        $row = array_combine($headings, $row);
        .... do the rest of your stuff here

        $user->setName($row['name']); 
        $user->setUsername($row['username']);
        $user->setEmail($row['email']);

        ....
    }

嗨,马克,谢谢你的回答。由于我很少与PHPExcel合作,我不太理解您的建议。。。我展示的代码是创建
$row['name']
$row['username']
$row['email']
,等等的映射代码
在这里做你的其他工作
意味着做你的代码已经在做的工作:
$account=$em->getRepository('ExcelBundle:Users')->findOneByUsername($row>)['name'];if(!$account){$user=new Users();}$user->setName($row['name']);$user->setUsername($row['username']);$user->setEmail($row['email']);//……等等,$em->persist($user);$em->flush();
等等……谢谢您的解释