I have an excel that has a password (When you open it, it asks for a password). I want to open it and save it to a new folder. Supposing that there is no password my script would be :
<?php
$url = 'http://localhost/1472742721137_Book1.xlsx';
$destination_folder = $_SERVER['DOCUMENT_ROOT'].'/YOLO/';
$newfname = $destination_folder .'Book1.xlsx'; //set your file ext
$file = fopen ($url, "rb");
if ($file) {
$newf = fopen ($newfname, "a"); // to overwrite existing file
if ($newf)
while(!feof($file)) {
fwrite($newf, fread($file, 1024 * 8 ), 1024 * 8 );
}
}
if ($file) {
fclose($file);
}
if ($newf) {
fclose($newf);
}
?>
How can I mention the password of the file in the fopen
function? It must be only one line that does that.
Otherwise, I will have to use PHPExcel but that is something I want to avoid as it brings me many errors even though I am trying to make it work for a NON protected excel file.
My steps :
a) I downloaded the files and extracted them from github .
b) I then added this script:
<?php
include '/Classes/PHPExcel.php';
$url = '1472742721137_Book1.xlsx';
$destination_folder = $_SERVER['DOCUMENT_ROOT'].'/YOLO/';
$reader = PHPExcel_IOFactory::createReaderForFile($url);
$reader->setReadDataOnly(true);
$workbook = $reader->load($url);
$objWriter->save($destination_folder);
?>
c) I am getting this errors :
UPD:
I made the script work finally. Now, all I need is to add the line that will get the password. The file has a password that I need to add in my script in order to open it and then save it (without a password).
My script :
<?php
include '/Classes/PHPExcel.php';
$url = 'AAAAA.xlsx';
$destination_folder = $_SERVER['DOCUMENT_ROOT'].'/YOLO/';
$fileType=PHPExcel_IOFactory::identify($url);
$objReader = PHPExcel_IOFactory::createReader($fileType);
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load($url);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, $fileType);
$objWriter->save($destination_folder.'/output.xlsx');
?>
Advertisement
Answer
If you are working only on Excel files, I recommend using the PHPExcel module, available here You can open password protected sheets since the 1.8.0 release I think