php一张纸对折,将一张纸的内容和样式克隆到另一张纸-PHP Excel

我需要将Excel工作簿中一张工作表的内容复制到新的Excel工作簿中的工作表.问题是,我不知道工作表包含什么或它们的格式.但是,每次都只会是第一张纸.

我尝试了一种方法,但是每次都用光内存.所以我想我会逐行处理10万行.无论如何,我从一行开始,它获取了数据,但是将其写到新表中并不算运气.我该怎么做?

这是我到目前为止的内容:

// Open the current worksheet

App::import('Vendor', 'PHPExcel');

if (!class_exists('PHPExcel')) {

throw new CakeException('Vendor class PHPExcel not found!');

$this->xls = PHPExcel_IOFactory::load($path);

// Read all content

$this->xls->getActiveSheet()->rangeToArray('A1:ZZZZ1');

// Close current worksheet

$this->xls->disconnectWorksheets();

// Delete worksheet

unlink($destination);

// Open new worksheet

$this->xls = new PHPExcel();

$newWorksheet = new PHPExcel_Worksheet($this->xls, 'Sheet 1');

$this->xls->addSheet($newWorksheet);

$this->xls->setActiveSheetIndexByName('Sheet 1');

// Write all the content

$this->xls->getActiveSheet()->fromArray($array,null,'A1');

// Save current worksheet

$objWriter = PHPExcel_IOFactory::createWriter($this->xls, 'Excel2007');

$objWriter->save($destination);

我究竟做错了什么?

然后,还有更简单的方法吗?我不想编写所有这些代码,最后都是在重新发明轮子吗?

提前致谢

解决方法:

有专门为您执行此操作的内置方法:

$objPHPExcel1 = PHPExcel_IOFactory::load($path);

$objPHPExcel2 = new PHPExcel();

// Copy active worksheet from $objPHPExcel1 to $objPHPExcel2

$worksheet = $objPHPExcel1->getActiveSheet();

$objPHPExcel2->addExternalSheet($worksheet)

如果内存不足,在内存中构建大型阵列以尝试手动复制将无济于事.

有一些旨在减少内存的方法,例如单元缓存,希望使用那些方法来减少内存使用量

标签:php,excel,phpexcel

来源: https://codeday.me/bug/20191011/1895411.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值