在 PHP 中加载 Excel 文档时,一 table 列过多

One table column too much on loaded Excel Document in PHP

我制作了一个脚本,您可以在其中插入一个 Excel 文档,它将在网站上显示为 table。但是有一个错误,在每个加载的 table 列之间有一个额外的列。

这是我的例子Excel 文件: Excel Example File

这是我的浏览器输出,我加载了一个 Excel 文档,您可以在其中看到一列太多: Browser-Output 我标记了太多的额外列,当你将输出与文件进行比较时,你可以看到在原始文件中,Words 之间不是空列。

这是我使用的代码(我也在使用PHPExcel),table是在两个foreach循环中生成的:

--------------------------------index.php-------- ------------------------

    <?php
  require_once 'Classes/PHPExcel/IOFactory.php';

  if (isset($_FILES['excelFile']) && !empty($_FILES['excelFile']['tmp_name']))
  {
     $excelObject = PHPExcel_IOFactory::load($_FILES['excelFile']['tmp_name']);
     $getSheet = $excelObject->getActiveSheet()->toArray(null);

     echo "<table>";
     $rundeAnzahl = 0;
     foreach ($getSheet as  $zeile) {
         echo "<tr>";

         $x = 0;
         foreach ($getSheet as $item)
         {
           echo "<td>". @$getSheet[$rundeAnzahl][$x] . "<td>";
           $x = $x + 1;
         }
         echo "</tr>";
         $rundeAnzahl += 1;
     }
  }

 ?>
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Excel Tabelle</title>
    <link rel="stylesheet" href="style.css">
  </head>
  <body>
    <form class="" action="" method="post" enctype="multipart/form-data">
        <input type="file" name="excelFile" value="">
        <input type="submit" name="" value="Submit">
    </form>
  </body>
</html>

你能帮我看看为什么会出现这个额外的列吗?

在您的内部 foreach 中,您永远不会关闭 <td>,而是创建另一列。将其更改为:

foreach ($getSheet as $item) {
    echo "<td>". @$getSheet[$rundeAnzahl][$x] . "</td>";
    $x = $x + 1;
}