2013-05-01 537 views
1

我正在尝试使用PHPExcel类将报告导出到excel文件中。我真正需要做的是遍历HTML表格中的每一行,然后将其放入Excel文件中的单元格中。如何使用PHP浏览HTML表格并获取每个td中的数据?

我认为PHPExcel有足够的文档来帮助我创建excel文件。但我不知道如何做的是拿一个html表格并将其分解,以便我可以将每个值都放入一个excel单元格中。

感谢您的帮助

+0

为什么不使用PHPExcel的HTML阅读器?使用HTML阅读器加载,使用Excel2007或Excel5 Writer保存,根本不需要额外的工作 – 2013-05-01 21:32:35

+0

@MarkBaker如何使用HTML阅读器?我可以在哪里找到关于如何使用它的样本? – Mike 2013-05-01 21:49:36

+0

HTML阅读器的使用方式与任何其他阅读器相同,只需使用PHPExcel_IOFactory :: load()或安装PHPExcel_Reader_HTML类并使用其load()方法 – 2013-05-01 22:04:05

回答

5

简单:

$objReader = PHPExcel_IOFactory::createReader('HTML'); 
$objPHPExcel = $objReader->load("myHtmlFile.html"); 

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); 
$objWriter->save("myExcelFile.xlsx"); 

,但你可以用你相同的基本逻辑,从报告数据构建HTML,只是修改它的PHPExcel对象设置单元格的值。如果你有一个MVC,那么它只有你真正需要改变的View。

+0

谢谢。这有很大帮助。我在哪里可以找到关于如何将读者指向带有页面中ID的就绪表的文档?所以如果我有一个id =“extractableReport”的表,那么我可以传递extractableReport,它只会导出表。我对所有这些问题感到抱歉,这是我第一次使用这个课程或者读者。 – Mike 2013-05-01 23:11:04

+0

你不能...... PHPExcel读者需要一个文件系统文件来读取,而不是一个url;如果它是外部链接,那么您需要使用curl来请求HTML并将其保存到文件;如果你自己构建HTML,那么你发送额外的参数并测试它来构建PHPExcel对象而不是HTML标记 – 2013-05-01 23:16:07

+0

这是内部链接,但我不想导出页面中的所有数据。我打开想要导出它的一部分。所以只能在我的内部页面导出表格 – Mike 2013-05-01 23:18:46

-3

你遍历它使用jQuery

$('td').each(function(){ 
//do stuff here... 
}); 

jQuery API docs for .each

+0

我想用PHP来做,因为PHPEcxel类在PHP中,所以我不能使用jQuery – Mike 2013-05-01 21:30:35

2

如果你想惹HTML但在PHP,我建议SimpleHTMLDom

如果您像jquery,你会喜欢它。

示例代码:

$html = str_get_html('<table id="mytable"><td>cell ??</td><td>cell 2</td></table>'); 
$html->find("#mytable td:first-child",0)->innertext = "cell 1!"; 
echo $html; 

处理完毕。

相关问题