所以,我在导出表格到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>然后,在PHP中,它应该生成excel:
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'];但是只显示第一组报头。我已经尝试删除头文件,但也不起作用。
怎么了?
发布于 2011-06-30 13:02:27
尽管聊了聊,我还是解决了这个问题。似乎在javascript中转义字符没有被转义,所以我不得不添加以下代码来解决这个问题:
echo str_replace('\"','"', $_POST['datatodisplay']);;发布于 2011-06-29 17:09:07
您的HTML是错误的。HTML DTD声明一个表只能包含一个thead和一个tfoot,但包含多个tbody标记:
<!ELEMENT table
(caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>这是您的主要问题;HTML是无效的。
除此之外:
https://stackoverflow.com/questions/6517814
复制相似问题