PHPExcel匯出Excel檔案時出現錯誤的解決辦法_PHP教程

來源:互聯網
上載者:User
phpexcel檔案是一款開源的php表格操作外掛程式,只要用到excel資料匯入匯出的朋友大多數人都選擇此款外掛程式了,但在使用中也會有問題出現,下面來看問題分析研究。

PHPExcel是PHP中功能最強大的匯入、匯出、操作Microsoft Excel的開源項目。但是它體系複雜,有時會讓人難以掌控。


PHPExcel匯出Excel表的使用方法網上已經很多了,本文就不贅述。不過,在使用過程中,我卻發現了一個莫名其妙的問題:那就是使用PHPExcel自動匯出excel的檔案有時候能夠正常匯出並開啟,有時候產生的excel檔案卻無法開啟,Excel2007提示“發現無法讀取的內容”。

使用文字編輯器開啟產生的Excel檔案,發現一行提示“Fatal error: Call to a member function setValue() on a non-object in PHPExcel/Calculation/FormulaParser.php on line 431”。

經過仔細而又痛苦的檢查發現,原來是因為在寫入儲存格的文本值中,有些值以等號開頭,例如“====中國青年報...”,結果PHPExcel在寫入這個儲存格的時候,將其判定為公式,於是調用公式解析器去計算相應的值,但是又無法正確進行計算(因為本來就不是公式嘛),所以就導致產生的excel檔案無法開啟。

解決辦法非常簡單

就是在往excel儲存格寫入文本值之前,先過濾掉等號“=”,即可。

以下是兩種錯誤的解決辦法:

(1)Fatal error: Maximum execution time of 30 seconds exceeded解決錯誤方法
需要修改php.ini檔案,如果是使用Ubuntu 9.04 Server的伺服器,可以在/etc/php5/apache2/下找到php.ini檔案,如果是Freebsd,可以在/usr/local/lib/下找到php.ini檔案。使用sudo許可權編輯下面的語句:

將如下語句:
max_execution_time = 30
修改為:
max_execution_time = 300
也就是將PHP指令碼最長執行時間從30秒延長到300秒。

然後重啟一下Apache伺服器,如果是Ubuntu Server的伺服器,可以使用如下命令:
sudo /etc/init.d/apache2 restart

(2)Fatal error: Allowed memory size of 16777216 bytes exhausted 的解決辦法
一樣地需要修改php.ini檔案:

將如下語句:
memory_limit = 16M
修改為:
memory_limit = 512M

也就是將PHP指令碼所能夠申請的記憶體從16M擴大到512M。具體數字可以根據自己的需要確定。

一樣需要重啟Apache伺服器。

需要注意的是:
(1)以上的修改可能存在一定風險,例如給伺服器造成過大的負擔。所以請再三確認是否有必要給PHPExcel或者是其他PHP程式開放更大的記憶體空間以及更長的執行時間。
(2)修改完php.ini之後,只有重啟Apache之後,新的設定才會生效。
(3)php.ini中的設定,請根據自己伺服器的情況量力而行。

http://www.bkjia.com/PHPjc/632191.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/632191.htmlTechArticlephpexcel檔案是一款開源的php表格操作外掛程式,只要用到excel資料匯入匯出的朋友大多數人都選擇此款外掛程式了,但在使用中也會有問題出現,下面...

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.