2012-03-14 60 views
3

我目前有一个excel文件(.htm),我用它作为我的发票报告模板。用户选择发票并点击提交后,将使用发票信息对模板进行分析,并且提示允许用户将文件保存为Excel文件(.xls)。php解析excel与多个工作表

我现在需要允许用户选择多个发票。每个选定的发票将需要解析到不同的工作表。

我到目前为止所做的工作: 我已经编辑了模板并从sheet1中复制的数据创建了sheet2,但我收到一个错误消息。

有没有办法选择我想要解析的信息? 任何建议可能是一个简单的方法来做到这一点?

这个准备我的输出文件

//Prepare the output file 
header("Content-type: application/vnd.ms-excel"); 
header("Content-Disposition: attachment; filename=\"$filename\""); 
header("Expires: 0"); 
header("Cache-Control: must-revalidate, post-check=0,pre-check=0"); 
header("Pragma: public"); 
+1

你用什么库来创建excel文件? – clops 2012-03-14 19:13:26

+0

我没有使用库。我使用php头函数。我已经在上面添加了它。 – PlatiNUM 2012-03-14 19:20:21

回答

1

不能自动地把HTML标记到一个Excel文件,只需发送相应的头到浏览器。你在做什么仍然是发送一个HTML文件给用户,MS Excel将会原谅并打开它(但它是MS Excel,它将HTML标记解析/转换为它可以理解和显示的格式),而不是标题你发送...请注意,最新版本的MS Excel可能会发出警告消息,而不是最好的用户体验。

当MS Excel解析/转换HTML文件时,它只会将标记处理为单个工作表;所以除非您改变您创建真实Excel文件的方式,否则您将无法创建一个文件,该文件将被MS Excel读取为两个或更多工作表。

能够创建“真实”Excel文件的库的列表可以在对this question的响应中找到。我自己喜欢的选择是使用PHPExcel(我有偏见,我是首席开发人员)。但是,您需要将模板重写为Excel模板而不是HTML ...来年的路线图包括能够将HTML解析为Excel,并且这将允许从多个“页面”的html中创建多个工作表,但该选项尚不可用(可能直到六月份左右)。

+0

好的,谢谢。写完这个之后我发现了PHPExcel。似乎比我们现在使用的更容易使用。 – PlatiNUM 2012-03-15 13:13:29