2013-09-24 65 views
0

有没有什么办法可以加快我的功能来处理更大的excel文件? 有我的代码:如何使用symfony2 phpexcel bundle缓存phpexcel

$excelService = $this->get('xls.service_xls5'); 

$excelObj = $this->get('xls.load_xls5')->setReadDataOnly(true)->load('../web/bundles/static/pliki/'.$name); 

$sheet = $excelObj->getSheet(0); 
$highestRow = $sheet->getHighestRow(); 
$highestColumn = $sheet->getHighestColumn(); 

for ($row = 1; $row <= $highestRow; $row++){ 

    $nazwaKlienta = $sheet->getCellByColumnAndRow(0,$row)->getValue(); 
    $ulica = $sheet->getCellByColumnAndRow(1,$row)->getValue(); 
    $miasto = $sheet->getCellByColumnAndRow(2,$row)->getValue(); 
    $kod = $sheet->getCellByColumnAndRow(3,$row)->getValue(); 
    $notatka = $sheet->getCellByColumnAndRow(4,$row)->getValue(); 
    $kolor = $sheet->getCellByColumnAndRow(5,$row)->getValue(); 

    if ($row == $highestRow) { 
     $excelObj->disconnectWorksheets(); 
     unset($excelObj); 
    } 

    $em = $this->getDoctrine()->getManager(); 
    $klient = new Klient(); 
    $klient->setNazwa($nazwaKlienta); 
    (...) 

    $em->persist($klient); 
    $em->flush(); 
    $klientId = $klient->getId(); 
    $punkt = new Punkty(); 
    $punkt->setIdKlienta($klient); 
    $em->persist($punkt); 
    $em->flush(); 
} 

此代码开放现有的Excel文件和读取的所有数据,并将其写入到数据库中。它适用于大约150-200的数据量,但我需要处理大约2000行的数据。我如何使用phpexcelBundle进行缓存或者有其他方法?

回答