Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

php

phpexcel

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?

like image 320
Petruza Avatar asked Jan 10 '12 00:01

Petruza


People also ask

How to read Php excel file?

Read Excel File First, import the needed library and load the Reader of XLSX. Read the excel file using the load() function. Here test. xlsx is the file name.

How to use PhpSpreadsheet?

COMMAND-LINE DOWNLOAD Once you have installed Composer: Open the command line (or terminal). Navigate to your project folder and run composer require phpoffice/phpspreadsheet . Composer will automatically download all the required files into the vendor/ folder.


1 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

like image 93
Mark Baker Avatar answered Oct 02 '22 02:10

Mark Baker