我尝试使用phpspreadsheet库合并多个excel文件(大约2-10个文件)。我得到了致命错误:在merge.php的第27行的非对象上调用了__clone方法。我已经试着检查过所有东西了。是不是因为格式的原因?但是它被设置为xlsx。是否可以同时合并xlsx和xls文件?这是我的代码块
<?php
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$inputFileType = 'Xlsx';
$inputFileNames = [
'file1.xlsx',
'file2.xlsx',
'file3.xlsx'
];
$sheetnames = [
'Worksheet',
'Worksheet1',
'Worksheet2'
];
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader($inputFileType);
$reader->setLoadSheetsOnly($sheetnames);
$inputFileName = array_shift($inputFileNames);
$spreadsheetMain = $reader->load($inputFileName);
$spreadsheetMain->getActiveSheet()->setTitle('page0');
$num = 1;
foreach ($inputFileNames as $book => $inputFileName) {
echo ('$inputFileName: ' . $inputFileName) . '</br>';
$spreadsheet = $reader->load($inputFileName);
$clonedWorksheet = clone $spreadsheet->getSheetByName('Worksheet'.$num);
$clonedWorksheet->setTitle('Worksheet'.$num);
$spreadsheetMain->addExternalSheet($clonedWorksheet);
$num++;
}
$writer = new Xlsx($spreadsheetMain);
$writer->save('prueba1.xlsx');
?>By the way this is the link for the code and files I tried to merge.
欢迎任何形式的帮助。谢谢
发布于 2018-10-12 14:24:40
看起来您正在将电子表格克隆到一个变量中。首先创建一个电子表格对象,然后克隆。
/** Create a new Spreadsheet Object **/ $clonedWorksheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();
https://stackoverflow.com/questions/52771397
复制相似问题