php PHPExcel使用多个工作表修改现有的.xlsx文件

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/7594444/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-26 03:00:36  来源:igfitidea点击:

PHPExcel modify existing .xlsx file with multiple worksheet

phpwordpressphpexcel

提问by Denish


require_once '../Classes/PHPExcel/IOFactory.php';


/** PHPExcel */require_once '../Classes/PHPExcel.php';

$excel2 = PHPExcel_IOFactory::createReader('Excel2007');
$excel2 = $excel2->load('dentkey.xlsx');
$excel2->setLoadAllSheets();
$excel2->setActiveSheetIndex(0);
$excel2->getActiveSheet()->setCellValue('C6', '4')           

->setCellValue('C7', '5')         

  ->setCellValue('C8', '6')       

    ->setCellValue('C9', '7');
$excel2->setActiveSheetIndex(1);
$excel2->getActiveSheet()->setCellValue('A7', '4')

->setCellValue('C7', '5');


$objWriter = PHPExcel_IOFactory::createWriter($excel2, 'Excel2007');
$objWriter->save('dentkey1.xlsx');


here, i am able to load (.xlsx) file and i also able to modify (dentkey.xlsx). But After generating new .xlsx file (dentkey1.xlsx)..all worksheets data which was in (dentkey.xlsx) is not loading and also i cannot set value for 2nd worksheet.

在这里,我可以加载 (.xlsx) 文件,也可以修改 (dentkey.xlsx)。但是在生成新的 .xlsx 文件(dentkey1.xlsx)后。(dentkey.xlsx)中的所有工作表数据都没有加载,我也无法为第二个工作表设置值。

you can fine

你可以

$excel2->setActiveSheetIndex(1);
$excel2->getActiveSheet()->setCellValue('A7', '4')

->setCellValue('C7', '5');

is not setting value 5 to 'C7' column of generated (dentkey.xlsx) file

未将值 5 设置为生成的 (dentkey.xlsx) 文件的“C7”列

please help me...

请帮我...

thanks a lot in advance

非常感谢提前

回答by Nimit Dudani

This code seems working, Tested in local Environment WampServer Version 2.1

此代码似乎有效,已在本地环境中测试 WampServer Version 2.1

Download latest version of PHPExcel from here PHPExcel 1.7.6

从这里下载最新版本的 PHPExcel PHPExcel 1.7.6

Working Code.

工作代码。

<?php
error_reporting(E_ALL);
date_default_timezone_set('Europe/London');
require_once '../Classes/PHPExcel/IOFactory.php';
require_once '../Classes/PHPExcel.php';

$excel2 = PHPExcel_IOFactory::createReader('Excel2007');
$excel2 = $excel2->load('nTest.xlsx'); // Empty Sheet
$excel2->setActiveSheetIndex(0);
$excel2->getActiveSheet()->setCellValue('C6', '4')
    ->setCellValue('C7', '5')
    ->setCellValue('C8', '6')       
    ->setCellValue('C9', '7');

$excel2->setActiveSheetIndex(1);
$excel2->getActiveSheet()->setCellValue('A7', '4')
    ->setCellValue('C7', '5');
$objWriter = PHPExcel_IOFactory::createWriter($excel2, 'Excel2007');
$objWriter->save('Nimit New.xlsx');
?>

Remove this line from your code: $excel2->setLoadAllSheets();.

从您的这行代码:$excel2->setLoadAllSheets();

Hope this will help.

希望这会有所帮助。