怎样将数据读取到表格中,修改后保存?

想要使用php做一个Excel一样的网页,但发现说过input 读取数据后,所有的input就不可以修改了。那么有什么办法可以读取数据在表单,并能修改,修改后再保存?

您可以使用PHP读取Excel数据,并将其显示在HTML表单中。然后,您可以使用JavaScript或者其他客户端脚本语言,通过监听用户的表单操作事件,将表单中的数据发送给PHP处理,最终将数据保存回Excel文件中。

以下是一个简单的示例代码,可以读取Excel文件并在HTML表单中显示其中的数据,并允许用户编辑数据并保存回Excel文件:

<?php
// 读取Excel文件中的数据
require_once 'PHPExcel/Classes/PHPExcel.php';
$reader = PHPExcel_IOFactory::createReader('Excel2007');
$excel = $reader->load('data.xlsx');
$sheet = $excel->getSheet(0);
$data = $sheet->toArray();

// 处理表单提交
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
  // 从POST请求中获取修改后的数据
  $data = $_POST['data'];

  // 创建新的Excel文件并保存数据
  $excel = new PHPExcel();
  $sheet = $excel->getActiveSheet();
  foreach ($data as $row) {
    $sheet->fromArray($row);
  }
  $writer = PHPExcel_IOFactory::createWriter($excel, 'Excel2007');
  $writer->save('new-data.xlsx');
}

// 显示表格
echo '<form method="post">';
echo '<table>';
foreach ($data as $row) {
  echo '<tr>';
  foreach ($row as $cell) {
    echo '<td><input type="text" name="data[]" value="' . $cell . '"></td>';
  }
  echo '</tr>';
}
echo '</table>';
echo '<input type="submit" value="保存">';
echo '</form>';
?>


这段代码使用PHPExcel库来读取Excel文件中的数据,然后将数据显示在HTML表格中。当用户提交表单时,修改后的数据将被包含在名为"data[]"的数组中,并保存到另一个Excel文件中。在HTML表格中,每个单元格都包含一个文本输入框,用于用户修改数据。当表单被提交时,PHP将从POST请求中获取修改后的数据,并将其保存到新的Excel文件中。

该回答引用ChatGPT
在 PHP 中读取表单中的数据可以使用超全局变量 $_POST 或 $_GET,这样你就可以在表单中读取数据并对其进行修改。在表单中使用 元素是可以修改的,因此您可以在表单中添加一个按钮,通过该按钮触发 PHP 脚本对表单数据进行处理。

在 PHP 中,可以使用 PHPExcel 库或 PHPSpreadsheet 库来读取和写入 Excel 文件。这些库支持多种 Excel 文件格式,包括 .xls、.xlsx 和 .csv 等。您可以使用这些库中的函数将表单数据写入 Excel 文件,然后将其保存在服务器上或提供给用户进行下载。

下面是一个简单的 PHP 代码示例,该示例读取表单数据并将其写入 Excel 文件中:


<?php
// 加载 PHPSpreadsheet 库
require_once 'vendor/autoload.php';

// 创建一个新的 Excel 文档
$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();

// 获取表单数据
$data = $_POST['data'];

// 将数据写入 Excel 文件中
$worksheet = $spreadsheet->getActiveSheet();
foreach ($data as $row => $cols) {
    foreach ($cols as $col => $value) {
        $worksheet->setCellValueByColumnAndRow($col, $row+1, $value);
    }
}

// 保存 Excel 文件
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
$writer->save('example.xlsx');

// 输出 Excel 文件给用户下载
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="example.xlsx"');
header('Cache-Control: max-age=0');
$writer->save('php://output');
?>

这个示例假设您已经使用 Composer 安装了 PHPSpreadsheet 库。这个代码片段读取 $_POST['data'] 中的数据,并使用 PHPSpreadsheet 库将这些数据写入一个新的 Excel 文件中。最后,它将 Excel 文件输出给用户进行下载。