1. 程式人生 > >告別硬編碼,讓你的POI匯入匯出擁抱變化

告別硬編碼,讓你的POI匯入匯出擁抱變化

[GitHub地址](https://github.com/feng-haitao/auto-excel) | [部落格](http://www.fenghaitao.net) | 中文 | [English](https://www.jianshu.com/p/f9d45f3aace6) | [原文連結](https://www.jianshu.com/p/ae98353c78bb) ## 為什麼使用AutoExcel? Excel匯入匯出在軟體開發中非常常見,只要你接觸過開發,就一定會遇到。相信很多人會跟我一樣選擇用Apache POI來完成這項工作,在感受到POI功能強大的同時,我的團隊也遇到了以下問題: 1. 直接使用POI操作Excel將產生大量硬編碼,你會在編碼中寫死行索引和列索引 2. 大量不可複用的格式控制編碼,如背景色、對齊方式、單元格樣式等 3. 實施顧問明明提供了現成的模板,卻還要開發用程式碼實現一遍,開發效率低下 4. 模板調整時不得不動用開發資源 5. 簡單的匯出也需要寫特定的程式碼 **AutoExcel**解決了上述問題,它非常簡單,只需要少量的程式碼即可完成複雜的匯入匯出;使用它時,程式設計師對匯入匯出無感,即不需要直接操作POI;與此同時,實施顧問提供的Excel即是匯入匯出模板,除非新增資料來源或欄位,否則模板更新不需要動用開發資源。 **AutoExcel**並沒有對POI進行過重的封裝,而是充分利用了Excel本身具有的特性——名稱管理器,通過一些小技巧,將單元格與資料來源產生對映,從而解耦程式設計師與POI,避免產生硬編碼,讓匯入匯出工作變得愉快而不再是枯燥乏味。 ## 功能預覽 | 匯出前 | 匯出後 | | ------------------------------------------------------------ | ------------------------------------------------------------ | | ![image](http://www.fenghaitao.net/wp-content/uploads/2020/08/basic_object.png) | ![image](http://www.fenghaitao.net/wp-content/uploads/2020/08/basic_object_result.png) | | ![image](http://www.fenghaitao.net/wp-content/uploads/2020/08/single_table.png) | ![image](http://www.fenghaitao.net/wp-content/uploads/2020/08/single_table_result.png) | | ![image](http://www.fenghaitao.net/wp-content/uploads/2020/08/multi_table.png) | ![image](http://www.fenghaitao.net/wp-content/uploads/2020/08/multi_table_result.png) | | ![image](http://www.fenghaitao.net/wp-content/uploads/2020/08/fill_data_to_the_right.png) | ![image](http://www.fenghaitao.net/wp-content/uploads/2020/08/fill_data_to_the_right_result.png) | 實現以上匯出只需要編寫以下少量程式碼(你需要額外的程式碼來準備資料來源,例如從資料庫中獲取) ```j