我正在尝试下载使用PHPExcel生成的excelsheet,这是PHPExcel的新手,我一直尝试使用文档中提供的示例执行此操作。但是我无法为我下载脚本,它唯一能做的就是输出以下内容;
PKjGGD²Xð[Content_Types].xmlMNÃ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ÖøPKjG¶78éK_rels/.relsÍjÃ0ï{
£{£´1F^Ê ·2²Ðlå$±½-}ûy±ºÒÃ¥OvûyÕ;ØÓ°.JPìØÞµ^ê§Õ¨ÈYű3GØWw»g)åØõ>ªqQCD¦ãb!]þi$Lò3´èÉÔ2nÊòÃoT¦:Z
áh· ê³ç[ØÒ4½á·]ºÐyNì,Û¹>¤>£j
-'
VÌ)#÷EF^6ÚÜnô÷´8q"KÐHàë>_×Öÿ¹¢eÆÍ<âáUdøvÁÅ
TPKjG$±Vé¹xl/_rels/workbook.xml.relsÁjÃ0Dïý
±÷ZvZJ)s)\[÷´¶LlIh7mý÷UH¡Ä¬ØÇHëÍ÷8OLÔ¯ *JèM°½ï|4ÛûgÄÚ[=
&$ØÔwë74çr}$M<)pÌñEJ2GMEèóMÒ¨9ËÔɨÍ^w(Weù$ÓÜêO±³
ÒÎV )â¼CÛö_9èùJ$Ì/:dG]d×ãWKÆsÞÅsú<«[VàtBûÎ)?ð¼ùøÌã0_!íÉ!òä4úEÍÇ©yñãêPKjG3È8docProps/app.xmlSÁnÛ0½ï+Ý9Á0¢¢H7ô°bvgV¦c¡²$¬ìë';°ë¬;M§ÇÇçgR·§Ö&²ÁoÄrQ½ õÇx:|¿ù*
bð¸àq#ÎHâVR»"&¶HEvð´
s\KI¦ÁhÛ>wêZà\¦£um
ÞóÖ¢g¹*Ë/O¾Âê&Nââ¸îøM«`ú|ô|8Çì§Õ]ÎàüúÑ(Ô\|;tJÎ*íѼ%Ëg]*9/ÕÞÃm6Ö58B%ß õÐÏl6V¯;4RAöwÚJ/@ØÇÙÏâ"»v8é_!½RȤäDp®cûY/A×B9Éø:âÁ²CúYï ñ?/çbqoÛèðC¾ñKyoCÁgßCF®äØVàá½Á~XÿJOñîqû5©ö
$¬òMM×2ê!çO®×oðG¬FÍÇF¿$Ï «EÏ°#§äûÎë?PKjGòqå1µ¢docProps/core.xml¥AoÛ Çïûëæ`,ǺªÚ¡Ñ"5Óreðâ°b@çúÛcÇM×*íÞïýòú©Qè8/^cºÈ1ͺ^ã»»ìF>0-2Ö¸¯«w%·7¶ÎXpAGQ¤}ÁíC°!¡a~ ãâÒÕÄ2þÈj Ë<¿"
&X`dfv6âI)ø¬´SI 8
èà ]PòÌp¿¸!UÎÈFÞÂEôTé'/g°ëºE·Jhìýæþ!I=DÅW¥àwÀqÕ1@£¦dmW³â¤b>lbä ⦿À¿fÊiÐÑÅqSåçêëíîWË~Ê(Íh¾£WÅòc±¢ïsZäùÐÇɳµNú?íÉÒ2(¨¾¹}Fûû=ÚèÖðv¸ËÌ[xî¤
ñiVâ[Bÿª> 4¸FëãûEÛo[Äcpü"©ÏþýõxxKW't¸¯Gè;ã¯ÌÙ¾é#{´éÂf(}ØUm\?áÀ·*!$t®«ßªúPKjGs{Y³¦xl/theme/theme1.xmlíYOoÛ6¿ïSº·²lÉu:EìØëÖ¦
·C´DK¬)Q 餾
íqÀaÝ°ËÝv¶h]ºOÃÖý
{úcé6iSlCë-¿÷ïñQ¾|å^ÌÐ!ò¤k9"Ï]ëÖhx¡c!©p`ÆÒµæDZW¶>¸7UDb<¸kEJ¥¶-}Æò"OIk.b¬`(B;øØÆÌn6m;Æ4±Pcàzs2¡>A£¥µµ`>`ð(MøLø¹D"ÇS'ûsÙgbÖµ@NÀFä²ÃRÁB×jäËÞºl/ZC«Ñ
óOIWÓfN'ÂñкvüÿUÜ`0è%¿},uV°î°ãô<5Pñ¸Ê»ßðn¯ñoà7z½·Q÷*¼»ï4Úîv³w+¼·ªo»ßo×ð^o¯à6Ún"Fé
:ç22Kȳ«FxàŨP¶¶»
úDÛk1¾ËÅyp±¢ RóL°¸>ÇâLÞ$X[)¦|¹2ÉBÒ4U]ëãCFTO|ñô1zñôÑñý'Ç÷9~ðàøþÏ«8 uÂçßñ÷·¢¿÷üáWf¼Ôñ¿ÿôÙo¿~i*øìëG<yôìÏÿü᡾-ðXhL$ºAÐ>Á62g£EÖ(pHp ¢ðÆ3®Gêλ- ÎîÖt=ÄLQðZ×»³Fs®e²tsfIh.f:nãCìþÐf)ìdjbÙHMÍ=ÑÆ!IBÙb »Ciͯ»Ô\òBw(êajtÉè*!.sluÍ7»·Q3ûrXGBB`fbIXÍâ±Qc3y«È¤äÁ\ø5K ãh)M47ż¦î5Èö]6ëH¡èÔ¼9×;|Úpu¦I¤c?SØ¢íqeT×3$Cp²6Ü·)QgKë[4Ì$[ SJ^ÏÇ9`õ½V©c¼¬l3
uû}Ù^À·ác§(Öëpÿýgɬx_¡ßWèw±B¯Ëåó¯ËU)¶õ^;g¯m¼'±5gäºÌ¸ó!LæhÙç§<âj¸Pàü ®>¡*:p
b\B(KÖ¡D)p»°Öòί¨lÎç¼Å½ÐXíò né÷Í%|J]P+cpZaKo&Ì)§æxfiÞK¥Ù7!oÎ^&8íf!6
f$Èü^0XåÜC$#2FѧuJ·u^í5MÚFëͤ&Hº8w8ï¢ÔX½,©Ðhå5=ù8íZè¹à1NÌJfaÒµ|UòÊd>i°y[:µ×D¤Bª,£*_Z¼I*ýùá|°_WVÇùµ°OL&ÄWkfªa¹Æg(8Bc6ûôvÝP GEs1¡n¹ñê_fÁÉ×>ev`F¸¬I-ö<^ê4õì5º¿¦)s4Å{wMÉv.4¸ ¿zA 0Êöh×âBEªPQ( qÈe^Ò"S ±ìv¦+9¬êVÁ£(ra¤öiJ§"AÈ*í|3§©¯FeYª+ÓâwL eÙÛÎì·P´¨&¥#rÜÉ Ù¦ìÃÿpçã6^§=¨¹géE\èkGÁÆ©pÆ£¶i¶¸éú¨Má²/(ÜTø¬êoG|¢%x¡S¦ßrr:w4ã2Vo·ªBÐi¼ýæSsvk³·ãlÏàkï家WSÔÖ.2ùhåÏ,>¾²wà~4cJïîÁ¥´¿øøØéÖ?PKjG·ì£Óxl/sharedStrings.xml]ÎAj1Ð}Oájßñ$Pí,¡h buÆ`ËK¦·¯K,ÿû|øîp+Ù\©Iªìa3`Ï5&<|~^ÞÀ"GÌÉà ÂQÓ§,fÕeog*(C]{óU[Aí±MVFe&Òívw¶`b0+§ËJǺ²zxà$§ár®Îjpöþñ»¶ïdû«ðPKjGâ_Þùh
xl/styles.xmlËn0÷}
ËûÃRµ5ºhT5TêÖÀV|Aöp
yúÚÃE6Ìü>?ûQ
rc¹V)oNªtÍUÒ?Eþù+%ªÐ
R:¥÷Ù§Äâ$à¹@âw¶g[í
X0 ^T6¥bE¶ê@2{£{Pn¥ÑF2t©i#ëaµõ$)¢óéô%+%j¹DK*=(LéFYÒhµ)1
BäÂÄRÂw±EÃ_`'!Vî]æõ×DZÏ*-´!¦-Sç§ùò²brA<2ÁKýçump!Ö¾Î4YÒ3D0*w Yâbêak
uT·MñùÖcÛÇ}áò ò¸°uí¨ë~ó͵]jS»o¿74HþÁeÑùB<ûïý·9
ßèGíí%ÞkèøK0!ñØ=-°ßbÇæ-ò¸Õû|Âú^L¹ç%dO,ÁäóÛÕ8À=Ì-ÿ.x«$L°kJ:mø«ÃûÓÐÃõã¼òR©µ¤aÄßÎSå¨ÿë'¦´aºù°áê¥Ð9_5oÎØ,æÌVüYUâOfJü«¹6VÓÊäê˳ãH!+Ý$]jhØ °X¥nñO¨ù ¿ÑkÕ/~ѸTÍñV:S´ý#²ÿPKjG´´!Ðxl/workbook.xmlQËNA¼ç+Fs» @å5R $Hy Øóx¶m1/M÷ÚÀקglpË^zªÕ]µó'ïÔ2a>>jµ`cá¡Ó¿W×ï?hElBo\Ðég }±x7ßÆü¸ñQÉü±RKòtIêôÈfMCvoè(&RböædÆô4°wÍIÛ7Þ`Ø3ÌòÿpÄa@WÑNïH28Ã"FL¤óÜíT*ÒãåÞ'§3Ä{dè;}*0náM"OéÓ®³öL7Wå·YO°£ZH÷ûBi*ñaKûTÆ2n`eÖ§ÍÄñC¾2_rRõýX«3ñ²øR;=ôøRDcÜ~_b`ã6GçêT)Ô!Ù@¯Îhß4²Yÿ*uú¼Â
®Ñ!?wº¾Í?2ê?:Dªê%ú$ªænúÊg(|ÓVÃXè[$y¹Æ%¹õÓS;]¬ÙáËXð^ú09w)Ùá[4ucÙrðxñPKjG=aqøÍÀxl/worksheets/sheet1.xmlUÛnÛ0}ßWz_dé6IµYÖZô²>+kEOµ_?J¾¦
=E<4©CYÿÉUT±õMFcNPH½[²ÇÍûÏ,²kÁjX²g°ì|õnq@³·`n³0`ÁTÀ<¨íeÎó8¶I9·#,@'EsG¦ÙÅb¸L¹§ãñÇ8çR7só?¦25&eÚÕ$wt'ɲÕ"d¸5«NI
·&²esó|
tuÖwr9Ä«EÜÅ Iä^¥È@ºd_&óõÿ"|ðSÂÁÎãÛ{P8Ú˵EÜ{çwHfááâª!©)¡ïðpêd¡¶øh"\>9§
.A)_ünÊé«õ9綰M.. å¥rç
»ÎF35Ò\CêÎk2>ƨ*µ^sÇWÈÔòÜ÷|2QÅ}Äîõ¯VãE\QYIã»<í¯#"½'ǤëÓ¾#ÒÙÉJgÀééÀ³gÿ:5 ]ÓÈ`/YÊ¥¾ãöᶳm=R?xßø7ª2ׯQj`IMsùæÃ=ñáÕsÚ¾ï^ ×5zÄP?ÕkLö «µhúóÒáF*¦
Y¡{à[¯ÙµzËGÏ°0R»"Ìy´ëg© î{¯t0Äwð]5Rg<úÄ"SOB8;,Âz»Eç0o,¥·>xѵFÃKÊ"*8Éw/_ I[),£%kFÏ7+ïÓ¥Ò=`7ý$Ë-T§Ý|i
(oøZîÑ:6ÒX7xJéIºd»f¸;í±F§í(D½xèñÎt¬³×p{¦¥ »Ï?wC#õ¥u!GV0º ck(ÝÏê/PKjGÍKR"x#xl/worksheets/_rels/sheet1.xml.relsM1!{_A¶÷@cÌq×ù£Øp+a!,1ú{)-'yýä¤ÞÔ$¶p(bW¶ÈÞÂã~ÝAIGÞ0&_XÝ|£}4b5&,Bïõ¢µ¸@e*xgiûÀæuE÷BOúhÌI·ÿèåPKjGGD²Xð[Content_Types].xmlPKjG¶78éK_rels/.relsPKjG$±Vé¹xl/_rels/workbook.xml.relsPKjG3È8¼docProps/app.xmlPKjGòqå1µ¢sdocProps/core.xmlPKjGs{Y³¦Wxl/theme/theme1.xmlPKjG·ì£Ó;
xl/sharedStrings.xmlPKjGâ_Þùh
xl/styles.xmlPKjG´´!Ð4xl/workbook.xmlPKjG=aqøÍÀýxl/worksheets/sheet1.xmlPKjGÍKR"x#xl/worksheets/_rels/sheet1.xml.relsPKѹ
我正在使用这个脚本;
<?php
class Excel extends MY_Controller {
public function __construct()
{
parent::__construct();
include(APPPATH.'libraries/Classes/PHPExcel.php');
include(APPPATH.'libraries/Classes/PHPExcel/IOFactory.php');
$this->load->helper('download');
}
public function exporteerFactuur()
{
// Create new PHPExcel object
$objPHPExcel = new PHPExcel();
// Set document properties
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
->setLastModifiedBy("Maarten Balliauw")
->setTitle("Office 2007 XLSX Test Document")
->setSubject("Office 2007 XLSX Test Document")
->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
->setKeywords("office 2007 openxml php")
->setCategory("Test result file");
// Add some data
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1', 'Hello')
->setCellValue('B2', 'world!')
->setCellValue('C1', 'Hello')
->setCellValue('D2', 'world!');
// Miscellaneous glyphs, UTF-8
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A4', 'aaa')
->setCellValue('A5', 'aaa');
// Rename worksheet
$objPHPExcel->getActiveSheet()->setTitle('Simple');
// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);
// Redirect output to a client’s web browser (Excel2007)
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="01simple.xlsx"');
header('Cache-Control: max-age=0');
// If you're serving to IE 9, then the following may be needed
header('Cache-Control: max-age=1');
// If you're serving to IE over SSL, then the following may be needed
header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
header ('Pragma: public'); // HTTP/1.0
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
}
public function exporteer()
{
}
}
使用AJAX请求调用函数exporteerFactuur()。
答案 0 :(得分:0)
如果文件不是太大,我会尝试使用CodeIgniter Download Helper,而且你没有内存限制。
// The Download helper handles most of the HTTP headers but you could still send some if you like
header('Cache-Control: max-age=0');
// If you're serving to IE 9, then the following may be needed
header('Cache-Control: max-age=1');
// If you're serving to IE over SSL, then the following may be needed
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
header('Pragma: public'); // HTTP/1.0
// Load the download helper
$this->load->helper('download');
// Save and capture output (into PHP memory)
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
ob_start();
$objWriter->save('php://output');
$excelFileContents = ob_get_clean();
// Download file contents using CodeIgniter
force_download('01simple.xlsx', $excelFileContents);
如果您希望自己完成所有操作,我还会添加header("Content-Transfer-Encoding: binary");
并检查CodeIgniter force_download
的代码,以了解哪些标头是通过帮助者。