【问题标题】:PhpOffice\PhpSpreadsheet Multiple worksheet not workingPhpOffice\PhpSpreadsheet 多个工作表不起作用
【发布时间】:2017-10-29 09:56:16
【问题描述】:

以下代码仅在我评论第三张表时才有效,我可以看到打开并查看插入的内容,但是当我包含第三张表时,它不会打开文件但显示错误,can’t be opened for some reason.

    $this->spreadsheet = new Spreadsheet;
    $this->spreadsheet->setActiveSheetIndex(0);
    $sheet = $this->spreadsheet->getActiveSheet();
    $sheet->setCellValue('A1', 'Hello world');
    $sheet->setTitle('First');

    $this->spreadsheet->createSheet();
    $this->spreadsheet->setActiveSheetIndex(1);
    $sheet = $this->spreadsheet->getActiveSheet();
    $sheet->setCellValue('A1', 'Hello');
    $sheet->setTitle('Second');

    $this->spreadsheet->createSheet();
    $this->spreadsheet->setActiveSheetIndex(2);
    $sheet = $this->spreadsheet->getActiveSheet();
    $sheet->setTitle('Third');


    $writer = new Xlsx($this->spreadsheet);
    $writer->setOffice2003Compatibility(true);
    $writer->save($fileName);

请帮我解决这个问题。 https://github.com/PHPOffice/PhpSpreadsheet/ (开发)分支

【问题讨论】:

    标签: php spreadsheet xlsx phpoffice


    【解决方案1】:

    根据documentation你可以试试这个:

    $reader =  \PhpOffice\PhpSpreadsheet\IOFactory::createReader("Xlsx");
    
    $spreadsheet = $reader->load('<path>'); //Path of reader sheet    
    // Create a new worksheet called "Name" in your case 3 Times
    $myWorkSheet = new \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet($spreadsheet, 'Name');
    
    // Attach the "Name" worksheet as the first worksheet in the Spreadsheet object
    $spreadsheet->addSheet($myWorkSheet, 0);
    

    然后你可以通过名字来调用工作表

    $spreadsheet->getSheetByName('Name');
    

    【讨论】:

      【解决方案2】:

      尝试删除或注释掉该行

      $writer->setOffice2003Compatibility(true);
      

      在我的情况下它抛出了那个错误

      【讨论】:

        猜你喜欢
        • 2018-06-22
        • 2019-07-30
        • 2019-01-31
        • 2018-06-15
        • 2018-06-01
        • 2022-01-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多