使用Symfony 4中的PhpOffice \ PhpSpreadsheet从Excel文件读取数据

时间:2019-05-31 14:59:48

标签: php symfony4

我用symfony 4开发了一个应用程序,我需要从excel文件中读取数据。我将PhpOffice \ PhpSpreadsheet集成到我的项目中,但是现在找不到使用它的文档。我发现这个网站可以启动,但是它并不能满足我的所有需求。 https://phpspreadsheet.readthedocs.io/en/latest/topics/reading-and-writing-to-file/

如果某人将拥有另一条曲目或知道如何使用PhpSpreadsheet从excel文件中读取数据。

public function excelReader(){

    $reader = new Xlsx();
    $reader->setReadDataOnly(TRUE);
    $spreadsheet = $reader->load("test.xlsx");
    $worksheet = $spreadsheet->getActiveSheet();

    $highestRow = $worksheet->getHighestRow(); 
    $highestColumn = $worksheet->getHighestColumn(); 
    $highestColumnIndex = \PhpOffice\PhpSpreadsheet\Cell\Coordinate::columnIndexFromString($highestColumn);
$res = array();
    for($row=1; $row < $highestRow ; $row++){
        for($col = 1; $col <= $highestColumnIndex; $col++){
            $value = $worksheet->getCellByColumnAndRow($col,$row)->getValue();
            array_push($res,$value);
        }
    }


    return $this->render('table/excel.html.twig', [
        'list' => $res,
    ]);

 }

在此代码中,我尝试加载,然后读取放入控制器文件夹中的test.xlsx文件。我收到以下错误:文件“ test.xlsx”不存在。

1 个答案:

答案 0 :(得分:0)

尝试创建文件夹{symfony文件夹} / public / uploads /,然后将test.xlsx放入该文件夹。 然后在您的代码中更改此行: $spreadsheet = $reader->load("uploads/test.xlsx"); (出于安全原因,文件夹{symfony文件夹} / src / Controller /仅用于代码。)

下面有一些阅读电子表格的示例 {symfony目录} / vendor / phpoffice / phpspreadsheet / samples / Reader /