首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHPExcel......spreadsheet显示在网页上而不是下载

PHPExcel......spreadsheet显示在网页上而不是下载
EN

Stack Overflow用户
提问于 2013-09-04 08:17:02
回答 3查看 1.4K关注 0票数 1
代码语言:javascript
复制
<?php                      
if($_POST['export'])
{

require_once (dirname(__FILE__) . '/../Classes/PHPExcel.php');
$qry="select accessed_Menus as menus,phone_number as phone,date_Accessed as timeAxed,sessionid as sessiondetails from access_trails where DATEADD(dd, 0, DATEDIFF(dd, 0 ,date_Accessed)) >= DATEADD(dd, -10, DATEDIFF(dd, 0, {fn NOW()})) order by date_Accessed desc";
$result=mssql_query($qry);
$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
$rowCount = 1;
while($row =mssql_fetch_assoc($result)){
    $objPHPExcel->getActiveSheet()->SetCellValue('A'.$rowCount, $row['menus']);
    $objPHPExcel->getActiveSheet()->SetCellValue('B'.$rowCount, $row['phone']);
    $objPHPExcel->getActiveSheet()->SetCellValue('C'.$rowCount, $row['timeAxed']);
    $objPHPExcel->getActiveSheet()->SetCellValue('D'.$rowCount, $row['sessiondetails']);
    $rowCount++;
}
$objPHPExcel->getActiveSheet()->setTitle('Access Logs');
$objPHPExcel->setActiveSheetIndex(0);
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="Access logs.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;


?>

嗨,guys.....am使用上面的代码将数据从数据库导出到电子表格.我可以恢复数据的权限,但它只显示在加载的页面中。不过,我可以从本地主机下载.xls文件。帮助

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-12-01 17:11:37

Php代码

代码语言:javascript
复制
 header("Pragma: public");
 header("Expires: 0");
 header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
 header("Content-Type: application/force-download");
 header("Content-Type: application/octet-stream");
 header("Content-Type: application/download");
 header("Content-Disposition: attachment;filename=export.xls");
 header("Content-Transfer-Encoding: binary ");

echo strip_tags($_POST['tableData'],'<table><th><tr><td>');

然后使用下面的javascript导出

代码语言:javascript
复制
 $(function()      
        {
      $("#exportToExcel").click
         (function()                                   
          {
          var data='<table>'+$("#ReportTable").html().replace(/<a\/?[^>]+>/gi, '')+'</table>';
        $('body').prepend("<form method='post' action='php/exporttoexcel.php' style='display:none' id='ReportTableData'><input type='text' name='tableData' value='"+data+"' ></form>");
        $('#ReportTableData').submit().remove();
        return false;
       d}
      );
       }
     );
票数 0
EN

Stack Overflow用户

发布于 2013-09-04 08:56:43

您可以尝试添加这两个标题,但我不确定它会有帮助(我没有测试它):

代码语言:javascript
复制
header("Content-Description: File Transfer");
header("Content-Transfer-Encoding: Binary");
票数 0
EN

Stack Overflow用户

发布于 2013-09-04 13:52:22

此外,还可以尝试将这些添加到标题中:

代码语言:javascript
复制
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");

尽管文件被提示下载似乎不需要它们(我尝试的示例只有您的代码显示的相同行,而且它在IE 10和Chrome中都没有问题)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18608707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档