2011-09-29 84 views
23

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'); 


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

可以精细

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

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

没有设定值5生成(dentkey.xlsx)的 'C7' 列文件

请帮我...

感谢很多提前

+0

是否可以在追加模式下写入excel? 情形: 1)通过添加新的工作表创建新的Excel对象和插入数据 2)写对象到现有的excel文件 因此,如果文件具有工作表:“表1”,“表2”,“工作表3“ 写入将创建”工作表4“,但不会删除以前编写的工作表 – Denish

回答

48

此代码似乎工作,在当地环境中测试

从此处下载最新版本的PHPExcel PHPExcel 1.7.6

工作代码。

<?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'); 
?> 

从您的代码中删除此行。 $excel2->setLoadAllSheets();

希望这会有所帮助

+0

感谢您的回复...... hi nDudani,让我们知道我的xlsx文件(dentket.xlsx)包含宏和函数(计算),通过使用你的代码生成新文件(dentkey1.xlsx),但没有与现有的函数或宏进行调用,我希望你能理解我的问题..... – Denish

+0

你可以上传dentket.xlsx的地方吗?所以我可以在真实情况下测试 –

+0

yes ofcourse,你有任何想法的形式哪里(上传这个xlsx文件后)你我都可以访问这个文件..或者你可以给我你的emai-address我会立即发送给你...提前致谢。 – Denish