2011-09-29 81 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