У меня есть сценарий PHP, который использует библиотеку PHPSPreadsheet для вставки сообщения формы HTML в электронную таблицу, расположенную на сервере. Когда форма отправлена, я вижу, что ошибок нет, скрипт вставки запускается, и заголовок переходит на страницу благодарности, как и ожидалось.
Однако документ электронной таблицы во всех ячейках (должен начинаться с того, что строка, заполненная чем-то, пуст) (я пытался просто вставить случайные строки) ….
Вот мой код формы:
<html>
<body>
<form action="insert.php" method="post">
<select name="attendencenumber">
<option value="0" selected>(please select:)</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="other">other, please specify:</option>
</select>
<input type="text" name="other"></div>
FirstName: <input type="text" name="fname"><br>
LastName: <input type="text" name="lname"><br>
Email: <input type="text" name="email"><br>
PhoneNumber: <input type="text" name="pnumber"><br>
Comments: <input type="text" name="comments"><br>
<input type="submit">
</form>
</body>
</html>
<a href="http://localhost/login.php">
А вот мой скрипт php:
<?php
require __DIR__ . '/vendor/autoload.php';
$x = 0;
$alphabet = array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
$inputFileName = 'C:\Apache24\htdocs\asheet.ods';
//Load $inputFileName to a Spreadsheet object **/
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($inputFileName);
while($spreadsheet->getActiveSheet()->getCell($alphabet[$x] . '1') != "")
{
$x++;
}
$spreadsheet->getActiveSheet()->setCellValue($alphabet[$x] . '1', $_POST['attendencenumber']);
// Set cell A2 with a numeric value
$spreadsheet->getActiveSheet()->setCellValue($alphabet[$x] . '2', $_POST['fname']);
// Set cell A3 with a boolean value
$spreadsheet->getActiveSheet()->setCellValue($alphabet[$x] . '3', $_POST['lname']);
// Set cell A3 with a boolean value
$spreadsheet->getActiveSheet()->setCellValue($alphabet[$x] . '4', $_POST['email']);
// Set cell A3 with a boolean value
$spreadsheet->getActiveSheet()->setCellValue($alphabet[$x] . '5', $_POST['pnumber']);
// Set cell A3 with a boolean value
$spreadsheet->getActiveSheet()->setCellValue($alphabet[$x] . '6', $_POST['comments']);
//
header("location: http://localhost/thankyou.html", true, 301 ); exit;
?>
И, наконец, вот простая страница спасибо:
<html>
<h1>THANK YOU FOR REGISTERING!</h1>
</html>
Я запускаю скрипт на локальном хосте с Apache 2.4. Я знаю, что модуль PHP настроен правильно, потому что работают другие скрипты.
Документация по библиотеке электронных таблиц PHP (преемник PHPExcel) довольно скудна. Я прочитал это и не мог найти никакой помощи. Любая помощь от этих форумов будет принята с благодарностью. Спасибо всем
Задача ещё не решена.
Других решений пока нет …