dongxu8533486 2014-09-12 12:36
浏览 750
已采纳

PHPexcel无法保存文件

I have a file where I want to use standart example. Like here , but I added php://output instead of str_replace('.php', '.xlsx', __FILE__) because I want file to be downloaded by user. So, I have a form:

$res.="<form method='POST' action='".$this->self()."'>";
$res.="<input type='text' class='span5' placeholder='Address' name='excelAddress'></input>";
$res.="<button type='submit' id='export' class='span2 pull-right'>Экспорт</button>";
$res.="</form>";

And if post['excelAddress'] isset I try standart example:

$objPHPExcel = new PHPExcel();
$objPHPExcel->getProperties()->setCreator("Administrator");
$objPHPExcel->getProperties()->setLastModifiedBy("Administrator");
$objPHPExcel->getProperties()->setTitle("Показания клиентов по адресу:".$_POST['excelAddress']);
$objPHPExcel->getProperties()->setSubject("Показания клиентов по адресу:".$_POST['excelAddress']);
$objPHPExcel->getProperties()->setDescription("Показания клиентов по адресу:".$_POST['excelAddress']);

$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->SetCellValue('A1', 'Hello');
$objPHPExcel->getActiveSheet()->SetCellValue('B2', 'world!');
$objPHPExcel->getActiveSheet()->SetCellValue('C1', 'Hello');
$objPHPExcel->getActiveSheet()->SetCellValue('D2', 'world!');

$objPHPExcel->getActiveSheet()->setTitle('Simple');

$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
$objWriter->save('php://output');

Also in the top of my page I have includes:

/** PHPExcel */
include './lib/PHPExcel.php';

/** PHPExcel_Writer_Excel2007 */
include './lib/PHPExcel/Writer/Excel2007.php';

Also I have there:

ini_set("display_errors", "On");
error_reporting(E_ALL ^ E_NOTICE);

Do I need:

/** Include path **/
ini_set('include_path', ini_get('include_path').';../Classes/');

Or it just not to write ./lib./... where I have all libs? When I try my example I just have:

KL�,EG�D�X�[Content_Types].xml��MN�0���"�%nY ��vAa  �(0����ؖg�w{&i�@�nbE�{��y��d۸l m������X�(���)���F���;@1_������c)j�x/%��E��y� �QĿi!��K�y3�J<���Z1�0?Y�L%zV c��Ib7�����a/l٥P1:�q�r��j��j0A����u�""���(�   ���W�M��)Tj�({ܲ�>�O��,X٭���>B��~׭���Ӥ6�J=�oBZ����t��X4���Cg�,���QgmrL�ٯc�e���t��    Z�?����hPv��±��u�j���R�������}�Cv��PKL�,E�78�K_rels/.rels���j�0��{ �{���1F�^ʠ�2��l��$���-}�y����Î��O��v�y�;�؋Ӱ.JP���޵^������Yű�3G�Ww�g)����>�qQC��D����b!�]�i$L��3����2n���oT�:Z �h�����[��4�ი��]��yN�,ە�>�>�j -' V�)�#��EF^6��n���8q"K��H��>_ׄ����eƏ�<⇄�Ud�v�� T�PKL�,E�$�V��xl/_rels/workbook.xml.rels���j�0D�� ��ZvZJ)�s)�\[����LlIh7m��UH��Ĭؙ�H���8�OL���*J�M���|4��g��[=� 

What is my mistake?

  • 写回答

2条回答 默认 最新

  • douyou2732 2014-09-12 12:43
    关注

    I guess that you forgot to add header.

    $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    header("Content-Disposition: attachment;filename={$filename}");
    header('Cache-Control: max-age=0');
    $objWriter->save('php://output');
    

    In addition headers are for :

    .xls: application/vnd.ms-excel

    .xlsx: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题