1

我遇到了以下代码的问题:

/**
 * @Route("/dl", name="dl_xls")
 * @Method({"GET"})
 */
public function exportXLS()
{
    $em = $this->getDoctrine()->getManager();

    $query = $em->getRepository('App:Post')
        ->createQueryBuilder('u')
        ->select('u.title')
        ->getQuery();

    $result = $query->getResult();

    $phpExcelObject = $this->get('phpspreadsheet')->createSpreadsheet();

    $row = 1;
    foreach ($result as $item) {
        $phpExcelObject->setActiveSheetIndex(0)
            ->setCellValue('A' . $row, $item['title']);
        $row++;
    }


    $writer = $this->get('phpspreadsheet')->createWriter($phpExcelObject, 'Csv');
    /*var_dump($writer);*/
    $writer->save("php://output");

    $response = $this->get('phpspreadsheet')->createStreamedREsponse($writer);

    $dispositionHeader = $response->headers->makeDisposition(
        ResponseHeaderBag::DISPOSITION_ATTACHMENT,
        'resultat.xls'
    );

    $response->headers->set('Content-Type', 'text/vnd.ms-excel; charset=utf-8');
    $response->headers->set('Pragma', 'public');
    $response->headers->set('Cache-control', 'maxage=1');
    $response->headers->set('Content-Disposition', $dispositionHeader);

    return $response;

} 

这段代码给了我一个 xls 文件,其中包含我的数据库结果。问题是它给了我两次每个结果。

ps:我已经检查了我的数据库,并且我的条目在里面没有重复。

4

0 回答 0