php解析excel与多个工作表

时间:2012-03-14 19:04:22

标签: php excel

我目前有一个excel文件(.htm),我将其用作发票报告的模板。一旦用户选择发票并点击提交,模板将使用发票信息进行解析,并且提示允许用户将文件作为Excel文件(.xls)保存到他们的计算机。

我现在需要允许用户选择多张发票。每个选定的发票都需要解析到另一张表。

到目前为止我做了什么: 我已经编辑了模板并从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 个答案:

答案 0 :(得分:1)

只需将适当的标题发送到浏览器,就无法自动将HTML标记转换为Excel文件。你正在做的仍然是向用户发送一个HTML文件,MS Excel将是宽容并打开它(但它是MS Excel,它将html标记解析/转换为它能理解和显示的格式),而不是标题您发送的...请注意,最新版本的MS Excel在执行此操作时可能会发出警告消息,而不是最佳用户体验。

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

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