【问题标题】:Library to print tabular data on a web page用于在网页上打印表格数据的库
【发布时间】:2010-12-10 10:50:04
【问题描述】:

是否有任何库可以用来漂亮地打印表格数据(来自 php 代码)?

我的意思是,如果我有:


$headers = array("name", "surname", "email");
$data[0] = array("bill", "gates", "bill@microsoft.com");
$data[1] = array("steve", "jobs", "steve@apple.com");
/*...*/
pretty_print($headers, $data);

它会整齐地打印我的数据(最好使用无表格的 html 代码和 css)?

【问题讨论】:

  • 我不知道任何副手,但自己写一个不会太难。另外,为什么是无表的?表格用于表格数据!
  • @Tyler +1 正确使用表格。
  • @LAS_VEGAS:“无表格”HTML 代码的目标仅适用于本质上不是表格的区域,而是用于使用<table> 元素来布局页面 - 而不是使用 CSS 方法。 实际的表格数据仍应保留在视觉上合理的表格中。
  • @ToAll 感谢 cmets,我不反对基于表格的解决方案,我只是不喜欢它,以防万一我有选择。我的问题仍然有效。这不是so easy 编码,因为必须考虑分页、高亮、边框颜色、圆角效果等。我要问的是一件很常见的事情,我相信以前有人做过。无需重新发明轮子。
  • @LAS_VEGAS:高亮、边框等似乎更像是 CSS 问题,而不是 HTML 生成。在这种情况下,我什至不确定您所说的分页是什么意思-您为什么不打印整个表格?如果您只想要一个子集,则为 $offset 和 $limit 添加可选参数。

标签: php html css


【解决方案1】:

为什么不自己写呢?

我在下面写了一个例子。请注意,我没有对此进行测试 - 这是“空气代码”的定义,所以要小心。此外,您可以添加检查以确保 count($rows) > 0 或确保 count($rows) == count($headers) 或其他任何东西..

关键在于将一些东西放在一起并不那么

function displayTable($headings, $rows) {
  if !(is_array($headings) && is_array($data)) {
    return false; //or throw new exception.. whatever  
  }

  echo "<table>\n";
  echo "<thead>\n";
  echo "<tr>\n";
  foreach($headings as $heading) {
    echo "<th>" . $heading . "</th>\n";
  }
  echo "</tr>\n";
  echo "</thead>\n";

  echo "<tbody>"  
  foreach($data as $row) {
    echo "<tr>\n";
    foreach($row as $data) {
      echo "<td>" . $data . "<td>";
    }
    echo "</tr>\n";
  }
  echo "</tbody>\n";
  echo "</table>\n";
}

作为最后一点,为什么要使用 HTML/CSS 布局而不是表格呢?表格用于表格数据,这显然是。这就是他们的目的!

反对使用表格的趋势是使用表格来布局页面。它们对于表格数据仍然非常有效,并且在可预见的未来也会如此。

【讨论】:

    猜你喜欢
    • 2015-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-06
    • 1970-01-01
    • 1970-01-01
    • 2015-04-10
    • 1970-01-01
    相关资源
    最近更新 更多