2011-04-25 83 views
0

我擅長印刷這樣的:html to excel問題!

header("Content-Type: application/vnd.ms-excel; charset=utf-8"); 
header("Content-type: application/x-msexcel; charset=utf-8"); 
header("Content-Disposition: attachment; filename=".str_replace(' ', '_', $title).".xls"); 
header("Expires: 0"); 
header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
header("Cache-Control: private",false); 

內容是純HTML。這個問題,當我下載這個,我得到一個初始確認框書面

The file you are trying to open 'File_name.xls', is in a different format than specified by the file extension. Verified that the file is not corrupted and is from a trusted source before opening the file. Do you want to open the file now?

當我做「是」,我得到這個。有點奇怪,請在這裏輸入任何朋友嗎?

enter image description here

+0

哪種語言asp.net,php,asp,cold fusion ...等 – 2011-04-25 17:02:21

+0

我不確定我是否理解你在「打印」這個xls文件。從我的理解中可以看出,你是不是寫了一個擴展名爲xls的HTML文件? – keepitreall89 2011-04-25 17:04:32

+0

@geek,它的PHP。 @ keepitreal89,是的,它是使用php從mysql獲取的數據,然後使用html表格顯示。 – 2011-04-25 18:16:32

回答

0

那麼,這個突然得到解決,我不知道如何。

這就是我所做的。我複製並粘貼了Excel工作的不同頁面的代碼。然後,我手動更改了變量以適應第二頁。

經過一番嘗試,突然發生了變化。

感謝所有的答案。

PS。通過解決,我的意思是說excel不再被粉碎,儘管我仍然得到關於不正確格式的確認框。

0

嗯,這是非常奇怪的。我懷疑這會有所幫助,但嘗試將其重命名爲.xlsx。它可能只是它沒有得到正確的(較新的)文件擴展名。

+0

謝謝Rev.那麼這個想法是使用.xls,以便即使使用舊版MS Office的人也可以打開該文件。 – 2011-04-25 18:14:47

+1

儘管該文件不是Excel文件,因此使用.xls(或.xlsx)結尾基本上是放在Excel中。幸運的是,大多數版本的Excel都用於此目的,並且無論如何將導入HTML,即使它來自帶有xls擴展名的文件。但是你應該堅持正確的內容類型標題。 – 2011-04-25 19:27:12

+0

@Mark Ba​​ker,你一般如何生成excel(或rtf或pdf)文件? – 2011-04-26 10:56:19

0

我一直使用的內容類型=「應用程序/ MS-Excel的」

0

我有做同樣的事情的應用程序;它會設置ContentType = "application/vnd.xls"並且它可以正常工作(您仍然會收到有關格式錯誤的警告,但在此之後會打開)。

我懷疑問題不是內容類型,而是您發送的實際html內容。你能發佈一個你正在發送的文件導致錯誤的例子嗎?

+0

那麼@toby,你就在這裏。因爲我使用相同的結構來創建不同的excel文件,這很好地工作(我仍然得到這個警告,但Excel不會崩潰)。在這個特定的事情中,Excel崩潰一次,並且當它在打開後(自動,因爲恢復複選框被打勾),Excel不會再次崩潰。 – 2011-04-25 18:58:18