gpt4 book ai didi

php - 将一张工作表的内容和样式克隆到另一张工作表 - PHP Excel

转载 作者:行者123 更新时间:2023-12-03 00:23:47 27 4
gpt4 key购买 nike

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

我尝试过一种方法,但每次都会耗尽内存。所以我想我应该逐行执行 100 000 行。不管怎样,我从一行开始,它获取了数据,但没有运气将其写入新的工作表。我该怎么做?

这是我到目前为止所拥有的:

// 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 - 将一张工作表的内容和样式克隆到另一张工作表 - PHP Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34774486/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com