




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
JXL生成的excel文件+JAVA文件下載功能一個需求,用戶點擊下載按鈕,將指定的excel的報表模板使用數(shù)據(jù)庫數(shù)據(jù)渲染,然后下載到用戶本地;通常而言,對于一個文件的下載,可以有以下幾種方式:window.location.卜乃作文件名稱URL全路徑;window.open(文件名稱URL全路徑);這種方式不友好的地方在于服務(wù)器的目錄結(jié)構(gòu)直接暴露出去,而且在IE下很有可能會報錯權(quán)限問題等,甚至firefox中會觸發(fā)那個年代久遠而依然沒有解決的bugo所以這里不推薦。對于jxl生成excel文件,有兩種方式,一種是生成文件保存到磁盤,另一種是直接保存到輸出流中。對于上述需求,如果生成的文件保存到磁盤,隨著系統(tǒng)運行,磁盤會主鍵被占用,需要手動去刪除。由于文件都較小,所以這里采用第二種方式,直接在內(nèi)存中生成文件,然后提供給用戶下載的時候response回去。看一個例子:用于響應(yīng)下載請求的controller/***下載個人訂單@paramrequest@paramresponse@parammodelMap*/@RequestNlapping(value=,,/download.do11,method=RequestMethod.GET)publicvoidprocessDownload(HttpServletRequestrequestsHttpServletResponseresponse,ModelMapmodelNIap){longuserid=getllserld(request);Stringids=request.getParameter("ids");try{Long[]idarray=getIdsFromStringArray(ids.split(“)"));if(null==idarray||0==idarray.length){return;}//直接往response的輸出流中寫excelOutputstreamoutputstream=response?getOutputStream();//獲取文件名稱StringfileName=getUserFileName(userid);//下載格式設(shè)置response.setContentType(,,APPLICATION/OCTET-STREA|v|,,);response.setHeader(,Content-Disposition","attachment;filename=/""+fileName+"http://讀取數(shù)據(jù)渲染模板并寫入outputstream中List<PhAdvertiseOrderDO>advertiseOrderList=phAdvertiseOrderService.getAdvertiseOrderByIds(idarray?userid);outputstream=excelFileService.generalExcelFileInOutputStream(outputStream-,advertiseOrderList);outputstream.close();}catch(Exceptione){logger.error("下載報表發(fā)生異常!”,e);}}</pre>其中調(diào)用到的文件服務(wù)/*(non-Javadoc)*@seeease.photography.service.ExcelFileService#generalExcelFilelnOutputStream(java.lang.Stringyjava.io.Outputstream,java.util.List)*/publicOutputstreamgeneralExcelFilelnOutputStream(OutputstreamoutputStream^List<PhAdvertiseOrderDO>advertiseOrderList)throwsBiffException,工OException,WriteException{//檢查參數(shù)是否合法checkParam(tempalteFile?"noFile",advertiseOrderList);//獲取模板Workbooktemplatebook=Workbook.getlAlorkbook(newFile(tempalteFile));WritableWorkbookwriteableWorkbook=Workbook.createWorkbook(outputStream.,templatebook);//讀取數(shù)據(jù)寫入模板readDataAndWriteTemplate(templatebook^writeableWorkbook^advertiseOrderList);returnoutputstream;}</pre>其中的重點就在于WritableWorkbookwriteableWorkbook=Workbook.createWorkbook(outputStream.,templatebook);這句話指定了寫入的數(shù)據(jù)到輸出流中。頁面調(diào)用很簡單functiongetOrderFileNoDirect(){varids="for(vari=0;i<30;i++){if($(,,choose,,+i)!=null&&$("choose"+i).check
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國交流參數(shù)穩(wěn)壓器行業(yè)投資前景及策略咨詢報告
- 2025至2030年中國萬向胎壓表行業(yè)投資前景及策略咨詢報告
- 2025至2030年中國一次性用品行業(yè)投資前景及策略咨詢報告
- 2025至2030年中國高頻紅外碳硫分析儀產(chǎn)業(yè)競爭現(xiàn)狀及發(fā)展前景預(yù)測報告
- 2025至2030年中國青霉素行業(yè)供需態(tài)勢分析及競爭格局預(yù)測報告
- 2025至2030年中國間苯二胺行業(yè)市場競爭現(xiàn)狀及發(fā)展規(guī)劃分析報告
- 2025至2030年中國鋰電池隔膜行業(yè)競爭格局分析及投資前景規(guī)劃報告
- 2025至2030年中國視頻光端機行業(yè)市場行情監(jiān)測及前景戰(zhàn)略研判報告
- 兵器科學(xué)考試題及答案
- 面試試題真題及答案
- T/CECS 10378-2024建筑用輻射致冷涂料
- 2025年全球科技:中國無人駕駛出租車市場:商業(yè)化之路研究報告(英文版)-高盛
- 2025南京租房合同協(xié)議范本下載
- 農(nóng)業(yè)光伏電站項目投資估算
- 數(shù)據(jù)驅(qū)動的古氣候研究-洞察闡釋
- 護理實習(xí)入科教育
- 高考前2天校長在出征儀式生動員講話與在座的大家分享了3顆心
- 2025年湖北省武漢市中考化學(xué)模擬練習(xí)卷(含答案)
- 商場餐飲區(qū)特色咖啡廳委托經(jīng)營管理合同
- 2025重慶市潼南區(qū)梓潼街道社區(qū)工作者考試真題
- 2025年中式烹調(diào)師(高級)考試試題題庫
評論
0/150
提交評論