Open ThierryHFR opened 1 year ago
In my real situation, I import the file and all its sheets into MySql (it works perfectly). After modification (using a form), I export it, updating the cells that have been modified. :
<?php
function _upload_cg($files, $pl) {
if (isset($files['cg']) && !empty($files['cg']['name'])) {
// Where the file is going to be stored
$target_dir = "data/";
$file = $files['cg']['name'];
$path = pathinfo($file);
$filename = $path['filename'];
$ext = $path['extension'];
$temp_name = $files['cg']['tmp_name'];
$path_filename_ext = $target_dir.$pl.'.'.$ext;
move_uploaded_file($temp_name,$path_filename_ext);
}
}
require_once dirname(__FILE__).'/vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\IOFactory;
if (isset($_POST['btn-save'])) {
_upload_cg($_FILES, date('Ymd'));
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load( "data/".date('Ymd').".xlsx" );
$sheet = $spreadsheet->getSheet(0);
// $sheet->setCellValueByColumnAndRow(5, 2, 1);
$filename = 'yourspreadsheet.xlsx';
try {
$writer = PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xlsx');
$writer->save($filename);
$content = file_get_contents($filename);
} catch(Exception $e) {
exit($e->getMessage());
}
header("Content-Disposition: attachment; filename=".$filename);
unlink($filename);
} else {
?>
<!doctype html>
<html lang='fr' dir='ltr'>
<head>
<title>Import Xlsx</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
</head>
<body>
<form id="w0" method="post" enctype="multipart/form-data">
<div class="frmSearch">
<div class="form-group field">
<label class="control-label" for="cg">Files (File XLSX only)</label>
<input type="file" id="cg" class="form-control" name="cg" accept=".xlsx" maxlength="4096" />
<div class="help-block"></div>
</div>
<br>
<div class="form-group">
<p>
<input type="submit" class="btn btn-success" id="btn-save" name="btn-save" value="Import" />
</p>
</div>
</div>
</form>
</body>
</html>
<?php
}
?>
This is:
What is the expected behavior?
Modify the Xlsx file supplied as input.
What is the current behavior?
I get this error: Invalid cell coordinate TABLEAU1[#ALL]
What are the steps to reproduce?
1) I access the export.php file 2) I supply an XLSX file 3) I open the file 4) I save the file as XLSX 5) Download file
Please provide a Minimal, Complete, and Verifiable example of code that exhibits the issue without relying on an external Excel file or a web server:
If this is an issue with reading a specific spreadsheet file, then it may be appropriate to provide a sample file that demonstrates the problem; but please keep it as small as possible, and sanitize any confidential information before uploading.
What features do you think are causing the issue
Does an issue affect all spreadsheet file formats? If not, which formats are affected?
Which versions of PhpSpreadsheet and PHP are affected?
"phpoffice/phpspreadsheet": "^1.29" PHP 8.1.16