web-dev-qa-db-ja.com

PHPExcelは、複数のワークシートで既存の.xlsxファイルを変更します


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)にあったすべてのワークシートデータがロードされず、2番目のワークシートに値を設定できません。

あなたは大丈夫です

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

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

生成された(dentkey.xlsx)ファイルの「C7」列に値5を設定していない

私を助けてください...

事前に感謝します

26
Denish

このコードは機能しているようです。ローカル環境でテスト済み_WampServer Version 2.1_

ここから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();

これが役立つことを願っています。

52
Nimit Dudani