首页 > 解决方案 > 如何将html表单转换为excel文件?

问题描述

我正在制作一个 html 表单并想将表单转换为 excel 文件

<table style="border: 1px solid black;">
	<tr><td colspan="2"style="border: 1px solid black;"><text style="text-align:center;"><h4>A/U/S/H</h4></text></td></tr>
	<tr>
	<td rowspan="5" style="border: 1px solid black;"><h4 style="text-align:center;">code</h4></td>
	<td style="border: 1px solid black;">Ay-NIA/code of peripheral centre/ADR Number/Year</td>

	</tr>
	<tr>
		<td style="border: 1px solid black;">Ay-IPGT/code of peripheral centre/ADR Number/Year</td>

	</tr>
	<tr>
		<td style="border: 1px solid black;">
			Un-NIUM/code of peripheral centre/ADR Number/Year
		</td>
   </tr>
   </table>

标签: javascriptexcelhtmlhtml-tablems-office

解决方案


您可以使用 str_get_html http://simplehtmldom.sourceforge.net/

请查看以下示例:

include "simple_html_dom.php";
$table = '<table border="1">
<tr>
<th>Header 1</th>
<th>Header 2</th>
</tr>
<tr>
<td>row 1, cell 1</td>
<td>row 1, cell 2</td>
</tr>
<tr>
<td>row 2, cell 1</td>
<td>row 2, cell 2</td>
</tr>
</table>';

$html = str_get_html($table);



header('Content-type: application/ms-excel');
header('Content-Disposition: attachment; filename=sample.csv');

$fp = fopen("php://output", "w");

foreach($html->find('tr') as $element)
{
    $td = array();
    foreach( $element->find('th') as $row)  
    {
        $td [] = $row->plaintext;
    }
    fputcsv($fp, $td);

    $td = array();
    foreach( $element->find('td') as $row)  
    {
        $td [] = $row->plaintext;
    }
    fputcsv($fp, $td);
}


fclose($fp);


推荐阅读