PHP: запись входного текста из HTML формы для указания c ячейка в Excel - PullRequest
0 голосов
/ 05 февраля 2020

Я пытаюсь сохранить данные результата из формы html для указания ячейки c в Excel, но сейчас я могу записывать данные только без форматирования, где значение должно быть заполнено.

Вот код:

    <body>
      <form action="excel.php" method="post">
        <table>
          <tr><td>Name</td><td><input type="text" name="name" /></td></tr>
          <tr><td>Email</td><td><input type="text" name="email" /></td></tr>
          <tr><td>Location</td><td><input type="text" name="location" /></td></tr>
          <tr><td> </td><td><input type="submit" /></td></tr>
        </table>
      </form>
    </body>
    </html>

Просто базовая форма c html, а вот код PHP для экспорта результата формы в формате CSV.

<?php
    $filename = "myexcel.csv";
    header( 'Content-Type: text/csv' );
    header( 'Content-Disposition: attachment;filename='.$filename);
    $file = fopen('php://output', 'w');            
    $cells[] = array('Name', 'Email', 'Location');
    $cells[] = array($_POST['name'], $_POST['email'], $_POST['location']);
    foreach($cells as $cell){
      fputcsv($file,$cell);
    }
    fclose($file); 
?>

Из приведенного выше кода это результат в Excel: Изображение 1

И это результат, который я ожидал: Изображение 2

Если есть это лучший и правильный способ сделать это, любая помощь приветствуется.

Ответы [ 2 ]

0 голосов
/ 05 февраля 2020

CSV, как следует из названия, - это просто текстовый файл, содержащий значения, разделенные запятыми, но, поскольку он представляет собой простой текст, его невозможно отформатировать.
Microsoft Excel открывает формат CSV для «доброты», но это не формат Excel 1005 *.
Конечно, вам нужно переключиться на объектно-ориентированное программирование (в PHP оно поддерживается начиная с версии 5.1.0).
Надеюсь, что это помогло.

0 голосов
/ 05 февраля 2020
$filename = "myexcel.csv";
header( 'Content-Type: text/csv' );
header( 'Content-Disposition: attachment;filename='.$filename);
$file = fopen('php://output', 'w');            

 $cells[] = array('Name', $_POST['name']);
 $cells[] = array('Email', $_POST['email']);
 $cells[] = array('Location',$_POST['location']);

foreach($cells as $cell){
  fputcsv($file,$cell);
}
fclose($file); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...