[英]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.