我目前有一个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");

最佳答案

仅仅通过向浏览器发送适当的标题,无法自动将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月左右)。

关于php - PHP解析多个工作表的Excel,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9708467/

10-14 19:23
查看更多