簡體   English   中英

Phpspreadsheet克隆將無法正常工作並超時

[英]Phpspreadsheet clone won't work and timeout

我是第一次使用PhpSpreadsheet,並且始終運行良好。 但是,今天我需要制作一個文件,模板在其中復制幾張紙(超過300張紙)。 查看了文檔,它使用了clone方法。 但是,執行時,代碼不會給出錯誤和異常。 只是保持“等待本地主機”,然后突然停止。 我增加了set_time_limit甚至是內存限制,但是仍然可以正常工作。

 $File= IOFactory::createReader("Xlsx"); $Excel = $File->load('original.xlsx'); $clonedSheet = clone $Excel->getActiveSheet(); for($i = 0; $i <= 10; $i++) { $clonedSheet->setTitle('Simple Clone'.$i); $Excel->addSheet($clonedSheet); } $writer = IOFactory::createWriter($Excel, "Xlsx"); $filename = "omitidos.xlsx"; $writer->save("output/".$filename ); 

我嘗試使用for循環,即使沒有循環也是如此。

PHP7可能有問題嗎?

任何幫助都將受到歡迎。

我現在的“解決方案”:

在PHPSpreadSheet \\ Worksheet \\ Worksheet.php文件上。轉到__clone函數,用以下命令替換它:

public function __clone()
    {
        foreach ($this as $key => $val) {
            if (is_object($val) || (is_array($val))) {
                $this->{$key} = unserialize(serialize($val));
            }
      }

這不是一個完美的解決方案,但至少可以完成我的工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM