首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用PHPSpreadSheet库在PHP中合并Excel文件

用PHPSpreadSheet库在PHP中合并Excel文件
EN

Stack Overflow用户
提问于 2018-10-12 10:35:39
回答 1查看 1.1K关注 0票数 1

我尝试使用phpspreadsheet库合并多个excel文件(大约2-10个文件)。我得到了致命错误:在merge.php的第27行的非对象上调用了__clone方法。我已经试着检查过所有东西了。是不是因为格式的原因?但是它被设置为xlsx。是否可以同时合并xlsx和xls文件?这是我的代码块

代码语言:javascript
复制
<?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.

欢迎任何形式的帮助。谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-10-12 14:24:40

看起来您正在将电子表格克隆到一个变量中。首先创建一个电子表格对象,然后克隆。

/** Create a new Spreadsheet Object **/ $clonedWorksheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52771397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档