将HTML转换为Excel的最佳方法是什么?

我有一个有Flash图表(FusionCharts)和HTML表格的HTML页面。 我需要将这整个事情转换成Excel。 HTML表格应该显示在excel表格的单元格中。 Flash图表可以显示为图像。

是否有任何开源的API,我们可以用来实现这一点。 你能告诉我可能的select吗?

这可以通过单独使用JavaScript来完成。

HTML表格相对容易。 您可以下载页面,parsingHTML(提供各种HTMLparsing库),提取表格并将其转换为CSV(可以加载Excel),或者直接创buildExcel文件,例如使用Java POI,如上所示。

Flash部分非常困难。 有相当多的工具可以捕捉闪光灯的图像,你需要使用其中之一。 这可能会非常棘手,因为Flash可能是交互式的,所以您可能必须远程控制Flash部分,以便在捕捉之前显示正确的图像。 很难说没有更多的信息。

也就是说,屏幕抓取(这就是你正在做的)总是劳动密集型和脆弱的。 你应该真的推动一个更好的界面来获取你的数据,从长远来看这将节省大量的麻烦。

只需将页面的内容types设置为“application / vnd.ms-excel”。 如果html页面只是一个表,它将打开与Excel和看起来完美。 你甚至可以添加背景颜色和字体样式。

尝试一些这些内容types

application/excel application/vnd.ms-excel application/x-excel application/x-msexcel 

Excel可以默认转换HTML表格。 强制执行此操作的最简单方法是使用XLS扩展名保存HTML文件。 然后,Excel将打开XLS,就好像它是本机工作簿一样。

有一个非常好的Java POI API可以让你做到这一点,但它是Java。 http://poi.apache.org/

如果你在Win32上,你也可以使用Excel的COM API,网上有很多教程。

我无法就Flash部分提供任何build议,但是我已经多次将HTML表格完成到Excel。 是的,Excel可以打开HTML表格,但是大多数的HTML表格都有其他的垃圾信息,可以使它们不断地parsing表格。

CPAN模块HTML :: TableExtract是一个非常棒的模块,它允许您专注于要提取的表的非表示特定方面。 只需指定您感兴趣的列标题,也许指定表格的标题或类别,并且大部分都已设置。 您可能不得不后处理返回的行,但这比处理底层标记汤的所有荣耀要容易得多。

此外,为了输出为Excel格式,请使用Spreadsheet :: WriteExcel而不是OLE接口。 这样,你就不需要为你的程序安装Excel而工作,而且事情会变得更快一些。

如果您不希望在打开文件时由Excel自动更改内容(另一个我不喜欢发送CSV文件的原因),请确保指定单元格的数据types。 使用configuration文件格式化信息,以便您可以更改电子表格的外观,而无需更改程序。

您始终可以使用Excel的内置图表工具来replace网站图表。

这种组合使我能够使用几百行Perl和几天的工作来生成相当漂亮的文档,其中包括数百兆字节的刮擦数据(带有标志和图像链接等)。

你要做的是脆弱而难以维护。 您应该尝试创build一个csv提要来获取数据。 所有这一切都需要有人来修改HTML,并且你的刮板会抛出(可能在任何人记得你的程序运行多年之后)。

尝试从原始来源(即数据库或其他)获取CSV和图像数据,并从中创buildExcel文件。

我将添加到SpliFF的答案是,当你有你的数据作为CSV文件,你可以设置页面的MIMEtypes为应用程序/ vnd.ms-excel,这将打开Excel中的页面