2012-11-30 141 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']; 
?>