Home » Php » php – How to open an Excel file with PHPExcel for both reading and writing?

php – How to open an Excel file with PHPExcel for both reading and writing?

Posted by: admin April 23, 2020 Leave a comment

Questions:

I’m using the PHPExcel library, and I’m creating xls objects either for writing or for reading:

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

How can I open an XLSX file for reading and writing?

How to&Answers:

You load a file into PHPExcel using a reader and the load() method, then save that file using a writer and the save() method… but PHPExcel itself is unaware of the source of the PHPExcel object… it doesn’t care whether you have loaded it from a file (or what type of file) or created it by hand.

As such, there is no concept of “opening for read/write”. You simply read the file by name, and save to the same filename. That will overwrite the original file with any changes that you have made in your script.

EDIT

Example

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

And can I suggest that you read the documentation, and look at the sample code in /Tests