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

Posted on

How to open an Excel file with PHPExcel for both reading and writing? – Here in this article, we will share some of the most common and frequently asked about PHP problem in programming with detailed answers and code samples. There’s nothing quite so frustrating as being faced with PHP errors and being unable to figure out what is preventing your website from functioning as it should like php and phpexcel . If you have an existing PHP-based website or application that is experiencing performance issues, let’s get thinking about How to open an Excel file with PHPExcel for both reading and writing?.

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?

Solution :

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

Leave a Reply

Your email address will not be published. Required fields are marked *