При работе над системными проектами вам часто нужно выполнять экспортные функции, будь то экспорт или экспорт файлов CVS. Моя демонстрация ниже реализована в рамках SpringMVC.
1. В JS вам нужно только использовать режим Get для запроса экспорта:
$ ('#word-export-btn'). parent (). on ('click', function () {var promotionword = json.stringify ($ ('#mainform'). serializeobject ()); location.href = "$ {ctx}/ropotionword/export? Promotionword ="+romotionword;});2. Что вам нужно сделать в контроллере, чтобы вывести файл в формате потока данных:
@Requestmapping ("/export") public void export (сеанс httpsession, строки PromotionWord, httpservletrequest, httpservletresponse response) throws ioException {user sessionUser = (user) session.getattribute («пользователь»); JsonObject jsonObj = jsonObject.parseObject (PromotionWord); HSSFWorkBook WB = PROMETIONWORDSERVICE.EXPORT (sessionUser.getid (), jsonobj); response.setContentType ("Application/Vnd.MS-Excel"); Календарь cal = calendar.getInstance (); SimpleDateFormat sdf = new SimpleDateFormat ("yyyy-mm-dd"); String fileName = "word-" + sdf.format (cal.gettime ()) + ".xls"; response.setheader ("Содержимое-распада", "Приложение; filename =" + filename); OutputStream outpultream = response.getOutputStream (); wb.write (oupputstream); outpultream.flush (); outpultream.close (); }3. В службе необходимо записано данные в файл формата:
Public HSSFWorkBook Export (String UserId, JSONOBJECT JSONOBJ) {HSSFWorkBook WB = New HSSFWorkBook (); HSSFSHEET SHILE = WB.CreateSheet ("Word"); Hssfrow row = sheet.createrow (0); Hssfcellstyle style = wb.createcellstyle (); style.setalenment (hssfcellstyle.align_center); List<PromotionWord> pWordList;Map<String, Object> map = new HashMap<>();map.put("userId", userId);map.put("checkExistRule", jsonObj.getString("checkExistRule"));map.put("status", jsonObj.getString("status"));map.put("qsStar", jsonobj.getstring ("qsstar")); map.put ("ippringcount", jsonobj.getString ("ImpressionCount")); map.put ("selectGroupid", jsonObj.getString ("selectGroupid")); map.put ("ischeck", jsonobj.getString ("ischeck"); jsonobj.getString ("word")); long Impression = jsonobj.getlong ("ImpressionCount"); Long clic getTwentyPercentlists (word); if (pwordlist! = null && pwordlist.size ()> 0) {map.put ("ImpressionCount", pwordlist.get (pwordlist.size ()-1) .getImpressionCount ());} else {map.put ("ImpressionCount", 1);}}} Else (click! Romotionword (); word.setCreateDby (userId); word.setClickCount7 (click); pwordlist = getTwentyPercentlists (word); if (pwordlist! = Null && pwordlist.size ()> 0) {map.put ("clickCount", pwordlist.get (pwordlist.size ()-1) .getClickCount ());} else {map.put ("clickCount", 1);}} list <Промотций> list = commondao.querylist (romotion_word_dao + ".queryexportdatabyuser", map); «Рейтинг промо-рейтинги», «Покупка горячих», «экспозиция», «Щелкнив», «Время щелчка», «Время продвижения», «Потрать», «Средние клики», «Сопоставленные продукты», «Оценка ранжирования», «Статус»}; for (int i = 0; i <excelheader.length; i ++) {hssfcell cell = row.createcell (i); cell.SetCellValue (ExcelHeader [i]); cell.setcellstyle (стиль); if (i == 0) {sheet.setColumnWidth (0, 30*256); } else {sheet.setColumnWidth (i, 10*256); }} if (list! = null && list.size ()> 0) для (int i = 0; i <list.size (); i ++) {row = sheate.createrow (i+1); PromotionWord Word = list.get (i); row.createCell (0) .setCellValue (word.getWord ()); row.createCell (1) .setCellValue (word.getPrice ()+""); row.createCell (2) .SetCellValue (word.getSearchCount ()); row.createCell (3) .setCellValue (word.getQSstar ()); row.createCell (4) .setCellValue (word.getBuyCount ()); row.createcell (5) .setCellValue (word.getImpressionCount7 ()); row.createCell (6) .setCellValue (word.getClickCount7 ()); row.createCell (6) .setCellValue (word.getClickCount7 ()); if (word.getClickCount7 () == 0l) {row.createCell (7) .SetCellValue ("0,00%"); } else {decimalFormat df = new DecimalFormat ("0,00%"); row.createCell (7) .setCellValue (df.format ((double.valueof (word.getClickCount7 ()))/double.valueof (word.getimpressionCount7 ())))); } row.createCell (8) .SetCellValue (word.getOnlinetime7 ()); row.createCell (9) .setCellValue (word.getCost7 ()+""); row.createCell (10) .SetCellValue (word.getAvgcost7 ()+""); row.createCell (11) .setCellValue (word.getMatchCount ()); String rank = ""; if (word.getMatchCount ()! = null && word.getMatchCount ()! = 0) {if (word.getProspectrank () == null || word.getProspectrank () == 0l) {rank = "Другая позиция"; } else {rank = "" th "+word.getProspectrank ()+" bit ";}} else {rank =" --- ";} row.createCell (12) .setCellValue (Rank); Row.createCell (13) .setCellValue (word.getStatus () == 1?"Таким образом, вы можете щелкнуть, чтобы экспортировать напрямую, и это будет эффективно.
Выше приведено весь содержимое простого метода экспорта файлов Excel в Javaweb, принесенного вам. Я надеюсь, что все будут поддерживать wulin.com больше ~