2012-03-14 38 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