php使用多个工作表解析excel


php parse excel with multiple worksheets

我目前有一个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读取为两个或多个工作表的文件。

能够创建"真实"Excel文件的库列表可以在对此问题的回答中找到。我自己的首选是使用PHPExcel(我有偏见,我是首席开发人员)。但是,您需要将模板重写为Excel模板,而不是HTML。。。明年的路线图包括能够将HTML解析为Excel,这将允许从几个HTML"页面"创建多个工作表,但该选项还不可用(可能要到6月左右)。