在實際工作中經常會遇到將數據導出到Excel這樣的需求,對于php語言來說導出excel也不是什么難事,因為借助phpoffice之phpspreadsheet開源庫可以輕松實現.有過導出EXCEL經驗的人都知道在這個過程中最繁瑣的莫過于創建和操縱excel單元格,涉及寬度,高度,邊框,字體等等的設置.如果需要導出1000種不同格式和風格的excel表格,那將是開發人員的噩夢!
解決思路:
首先我們可以確定的是導出的excel到底長什么樣子,例如:

excel導出模板示例
知道了導出excel的長相之后,以此為依據,生成"制造EXCEL模板"的源代碼,也就是說依照導出excel的長相,編寫代碼生成器,代碼生成器的終極目標就是輸出源代碼,輸出的源代碼運行之后可以生成EXCEL文件,輸出的EXCEL文件就是我們最終要導出的EXCEL文件,例如:

excel代碼生成器輸出的源代碼
這樣我們就將寫代碼的任務交給計算機去完成了,完美解放自己的雙手!
實踐:
有了這個思路,那么接下來就是動手實現代碼生成器.
分析excel導出模板的規律,可以將一般的EXCEL分為頭部固定格式,中間動態數據填充,頁尾注解這三個部分,那么我們就可以依據這些總結出來的規律來編寫代碼生成器工具了,例如:

代碼生成器工具代碼片段
有了代碼生成器工具,那么相類似的EXCEL文件導出將不在話下.
總結:
在創建excel單元格并進行格式設定的時候,會導致程序執行速度慢,解決方案是設置默認樣式,盡量少的調用樣式設定函數.
將php執行時間設置為無限.
將php執行內存量加大.
phpspreadsheet開源庫功能非常強大!幾乎囊括了excel操作的方方面面,是PHP導出EXCEL的必備神器!