所以,我在将表格导出为excel时遇到了一些问题。
它已生成,但只显示第一组标题。
我有一张这样的表:
<table>
<thead>
<tr>
<th colspan="5">Incoming</th>
</tr>
<tr>
<th>From</th>
<th>To</th>
<th>Date</th>
<th>Duration</th>
<th>Status</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center;">942367233</td>
<td style="text-align: center;">-</td>
<td style="text-align: center;">15-06-2011 08:24</td>
<td style="text-align: center;">00:00</td>
<td style="text-align: center;">Abandoned</td>
</tr>
<tr>
<td style="text-align: center;">935761500</td>
<td style="text-align: center;">1956</td>
<td style="text-align: center;">15-06-2011 09:20</td>
<td style="text-align: center;">00:00</td>
<td style="text-align: center;">Answered</td>
</tr>
<tr>
<td style="text-align: center;">942367233</td>
<td style="text-align: center;">1957</td>
<td style="text-align: center;">15-06-2011 09:21</td>
<td style="text-align: center;">02:16</td>
<td style="text-align: center;">Answered</td>
</tr>
</tbody>
</table>
表格上的表格
<form action="toexcel.php" method="post" target="_blank"
onsubmit=\'$("#datatodisplay").val($("#data").html())\'>
<input type="image" src="/images/icons/Floppy-48x48.png" width="12" height="12">
<input type="hidden" id="datatodisplay" name="datatodisplay" />
</form>
然后,在它应该生成excel的PHP:
header("Content-type: application/vnd.ms-excel; name='excel'");
header("Content-Disposition: filename=ficheroExcel.xls");
header("Pragma: no-cache");
header("Expires: 0");
echo $_POST['datatodisplay'];
但只显示第一组标题。我试图删除标题但它也不起作用。
怎么了?
答案 0 :(得分:0)
你的HTML错了。 HTML DTD声明一个表可能只包含一个thead和一个tfoot,但是包含多个tbody标记:
<!ELEMENT table
(caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
这是你的主要问题; HTML无效。
除此之外:
答案 1 :(得分:0)
尽管聊天,但我能够解决这个问题。似乎转义字符没有在javascript中转义,所以我要添加以下内容,解决问题:
echo str_replace('\"','"', $_POST['datatodisplay']);;