web-dev-qa-db-ja.com

PHPExcelでExcelファイルを読み取りと書き込みの両方で開く方法は?

私はPHPExcelライブラリを使用しており、書き込みまたは読み取り用にxlsオブジェクトを作成しています。

PHPExcel_IOFactory::createReaderForFile('file.xlsx')
PHPExcel_IOFactory::createWriter('Excel2007')

XLSXファイルを読み取りおよび書き込み用に開くにはどうすればよいですか?

31
Petruza

リーダーとload()メソッドを使用してファイルをPHPExcelにロードし、ライターとsave()メソッドを使用してそのファイルを保存します...しかし、PHPExcel自体はPHPExcelオブジェクトのソースを認識しません...ファイルからロードしたか(またはどのタイプのファイル)手動で作成したかに注意してください。

そのため、「読み取り/書き込み用に開く」という概念はありません。ファイルを名前で読み取り、同じファイル名で保存するだけです。これにより、スクリプトで行った変更で元のファイルが上書きされます。

[〜#〜] edit [〜#〜]

error_reporting(E_ALL);
set_time_limit(0);

date_default_timezone_set('Europe/London');
set_include_path(get_include_path() . PATH_SEPARATOR . './Classes/');

include 'PHPExcel/IOFactory.php';

$fileType = 'Excel5';
$fileName = 'testFile.xls';

// Read the file
$objReader = PHPExcel_IOFactory::createReader($fileType);
$objPHPExcel = $objReader->load($fileName);

// Change the file
$objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A1', 'Hello')
            ->setCellValue('B1', 'World!');

// Write the file
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, $fileType);
$objWriter->save($fileName);

そして、ドキュメントを読んで、/ Testsのサンプルコードを確認することをお勧めします

54
Mark Baker