国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > Apache > 正文

java后臺利用Apache poi 生成excel文檔提供前臺下載示例

2024-08-27 18:25:17
字體:
來源:轉載
供稿:網友

之前在項目中會用到在Java在后臺把數據填入Word文檔的模板來提供前臺下載,為了自己能隨時查看當時的實現方案及方便他人學習我寫了這篇博客,訪問量已經是我寫的博客里第一了。于是乎我在學會用Java在后臺利用Apache poi 生成excel文檔提供前臺下載之后就想著來寫一篇姊妹篇啦。

在生成Excel文檔的時候我采用了和生成Word時的不同方法,Apache poi。它是用Java編寫的免費開源的跨平臺的 Java API,提供API給Java程式對Microsoft Office格式檔案讀和寫的功能。想要實現這個功能,就按照下面的步驟來做吧,為了方便起見,我直接拿項目中遇到的實例來舉例說明,是的,我在寫這篇博客的時候同時也在完成手上的項目。

step1:創建xls格式的模板

表頭含有我的甲方信息就打碼了,可以看到我搞了一個空的模板文件,現在有很多東西需要在后臺填入

step2:前臺觸發事件

搞一個按鈕,用戶點擊的時候用JavaScript的window.location.href將頁面重定向到你處理下載的URL去

比方說,這是我項目的前臺,看到那個表面質量按鈕嗎,來看一下當它被點擊的時候調用的函數

function exportBatch() {     //get請求,可以傳遞參數,比方說我這里就傳了一堆卷號,我只生成傳過去的這堆卷號的檢驗記錄     //參數rollNumbers的細節就不展示了,業務相關     window.location.href = '../ir/exportSurface?rollNumberList=' + rollNumbers;   } 

有朋友可能想用什么Ajax來發送請求,我反正是沒搞出來,挺麻煩的,網上找的相關解決方案也都比較蛋疼,因此不傳什么復雜的敏感的參數,就這么寫就可以。

step3:后臺處理

首先你當然要把Apache poi那一套東西引入你的項目啦,我的項目是Maven項目,添加依賴很容易

<dependency>       <groupId>org.apache.poi</groupId>       <artifactId>poi</artifactId>       <version>3.14</version>     </dependency> 

然后,為了方便導出Excel,在項目中建了一個ExcelUtils工具類,后面給出源碼,這么一來導出Excel會變得更簡單。ExcelUtils里面除了一些既定的方法外,還有就是你具體怎么去操作模板的方法了。當然你用的少的話可以不用我這工具類,而是在你需要的時候import相關的類,然后在你處理的時候就把操作模板的邏輯寫進去也可以。但我這個項目很多次用到導出Excel,所以抽象出一個工具類是很有必要的,符合設計模式。

我的項目是基于SpringMVC的,來看看我后臺接收到請求以后做了些什么吧

Controller:

/***    * 批量導出表面質量檢驗記錄    *    * @return    * @throws Exception    */   @RequestMapping(value = "exportSurface", method = RequestMethod.GET)   @ResponseBody   public void exportSurface(HttpServletRequest request,               HttpServletResponse response) throws Exception {     //參數獲取及處理,業務相關不展示     //把要填寫的數據放在一個map里     Map<String, Object> map = new HashMap<String, Object>();     map.put("sequence", "0001");//mock編號     map.put("date", DateUtils.toDateStr(new Date(), DateUtils.DEFAULT_DATE_PATTERN_CHINESE));     map.put("chetaihao", "1#");//mock車臺號     map.put("productName", "預應力鋼絞線");//mock品名     map.put("specification", "規格");//mock規格     map.put("memo", "備注");//mock備注     map.put("inspectRecordBizList", inspectRecodeBizList);     ExcelUtils.exportInspectionRecordSurface(request, response, map);   } 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 山阳县| 南皮县| 新田县| 陆川县| 伊吾县| 张家界市| 禄丰县| 福泉市| 东乡县| 新巴尔虎左旗| 乌什县| 米脂县| 罗平县| 广安市| 喀喇沁旗| 盐津县| 辉南县| 二手房| 尼勒克县| 高碑店市| 长白| 永定县| 汾西县| 古丈县| 中西区| 河东区| 大名县| 辽中县| 南通市| 尤溪县| 枞阳县| 福清市| 呼和浩特市| 三亚市| 鄂托克旗| 澄城县| 隆化县| 七台河市| 广南县| 错那县| 日土县|