2012-11-30 147 views
3

我遇到了麻煩,我無法將日文文本導出爲ex​​cel(xls)。PHP導出爲ex​​cel

我用下面的代碼:

header('Content-type: application/ms-excel;charset=UTF-8'); 
header('Content-Disposition: attachment; filename='.$filename); 
header("Pragma: no-cache");  
echo $contents; 

但在Excel文件,文本變爲奇怪的字符是這樣的:

é™?定ç‰? ã?¨ã??ã?¯ã??ã?£ã?†ã?ªã?¢å??犬ã?®ã?Œæ??ã? 

Ã'Â??了£? ?ã?綾£?†ã?££Ã??ã??ã??ã??一個??

目前,我使用的託管管理員,我嘗試在不同的服務器上使用相同的代碼,沒有問題。

可能是什麼問題。由於PHP版本?? 請幫幫我。

+1

你從哪裏得到'$ contents'的內容? –

+0

我從數據庫中獲取變量並將所有變量放入該變量($ contents)中。$ contents。= order_id「。」\ t「。」$ fname「。」\ t「。」$ lname「。」\ t「。」$ email「。」\ t「; – Aino

+0

您是否考慮過發送實際excel有效載荷/文件,而不是隻是CSV僞裝,因爲它? – mario

回答

0
header("Content-type: application/vnd.ms-excel;charset=UTF-8"); 
header("Content-Disposition: attachment; filename=\"download.xlsx"); 
header("Cache-control: private"); 
+0

謝謝,但仍然無法正常工作。 – Aino

1

試試這個

<form action="itemexcel.php" method="post" 
onsubmit='$("#datatodisplay").val($("<div>").append($("#ReportTable") 
.eq(0).clone()).html())'> 

股利或表什麼都我們要使用股利或表應該是ID = 「ReportTable」

<table id="ReportTable" width="781" border="2"> Or <div id id="ReportTable"> 
<tr> 
<td><input type="hidden" id="datatodisplay" name="datatodisplay"></td> 
<td><input class="bg" type="submit" value="Export To Excel"></td> 
</tr></table></div> 

<input type="hidden" id="datatodisplay" name="datatodisplay"> 
<input class="bg" type="submit" value="Export To Excel"> 

itemexcel.php頁

<?php 
header('Content-Type: application/force-download'); 
header('Content-disposition: attachment; filename=itemcode.xls'); 
// Fix for crappy IE bug in download. 
header("Pragma: "); 
header("Cache-Control: "); 
echo $_REQUEST['datatodisplay']; 
?>