public boolean exportdatatocsv (List datalist,linkedhashmap<string, string> showtitle, String fileName, HttpServletRequest request, HttpServletResponse response) throws Unsupportedencodingexception {Boolean flag = False;if ( Response! = NULL && request! = NULL) {//Get browser type final String useragent = Request.getheader ("user-agent");//output stream OUTP Utstream out = null;//data to be exported stringbuffer exportdate = new StringBuffer (); if (filename = = null) {filename = "";} SimpleDateFormat formatter = new SimpleDateFormat ("Yyyy-mm-dd HH:mm:ss");D ate curdate = new Date ( System.currenttimemillis ());//Gets the current time filename = filename + formatter.format (curdate) + ". csv"; if (Useragent.contains (" MSIE ")) {//IE browser filename = urlencoder.encode (filename," UTF8 "),} else if (Useragent.contains (" Mozilla ")) {//Google, Firefox fileName = new String (Filename.getbytes (), "iso8859-1");} else {filename = urlencoder.encode (filename, "UTF8");//Other browser}//prompt box settings response.reset (); Reset the response//response.setcharacterencoding ("UTF-8 "); Response.setcontenttype ("Application/octet-stream"); Response.setheader ("Content-disposition", "attachment; Filename=\ "+ fileName +" \ ""); try {//Get display Field (Entity property) list<string> fields = new arraylist<string> ();//Header ( Entity Chinese name) if (showtitle! = null && showtitle.size () > 0) {stringbuffer tablehead = new StringBuffer (); for (map.ent Ry<string, string> Entry:showTitle.entrySet ()) {Tablehead.append (Entry.getvalue ()). Append (","); Fields.Add ( Entry.getkey ());} Add Table Header Exportdate.append (tablehead); Exportdate.append ("\ n");} List data if (dataList! = null && datalist.size () > 0) {Object obj = datalist.get (0);//Get Entity class Set/get method meth Ods[] = Obj.getclass (). Getdeclaredmethods ();//The Get method that displays the field is stored in the collection list<method> invokemethods = new arraylist< Method> (); for (int j = 0; J < Fields.size (); j + +) {for (int i = 0; i < methods.length; i++) {String MethodName = Methods[i].getname (); String tmpmethodname = methodname.substring (3,methodname.length ());. Get (j). ToString (). Trim (). toUpperCase (). Equals (Tmpmethodname.touppercase ()) && Methodname.indexof ("set") ! = 0&& Methodname.indexof ("get") = = 0) {invokemethods.add (methods[i]);}}} Gets the data for (int i = 0; i < datalist.size (); i++) {obj = Datalist.get (i), for (int j = 0; J < invokemethods.size (); j+ +) {Method method = Invokemethods.get (j), Object tmpobj = Method.invoke (obj), if (tmpobj = = null) {tmpobj = "";} Exportdate.append (Tmpobj.tostring ()); Exportdate.append (",");} Exportdate.append ("\ n");}} System.out.println ("============" + exportdate.tostring ()); out = Response.getoutputstream (); byte[] bytes = Exportdate.tostring (). GetBytes ("GBK"); out.write (bytes); Out.flush ();//Close output stream if (out! = null) {exportdate.delete (0, Exportdate.length ());} Flag = true;log.info ("File export finished!") ");} catch (Exception e) {log.error (e); E.printstacktrace () Log.error ("Exception occurred when exporting data");} finally {if (out! = null) {try {Out.close ();} catch (Exception e) {e.printstacktrace ();}}}} Else{new NullPointerException ("HttpserVletrequest Or HttpServletResponse is Null! ");} return flag;}
Call
@RequestMapping (value = "/exportdealermanager") public void Exportquerydata ( HttpServletRequest request, HttpServletResponse response, Fldealer Fldealer) throws Exception {String filename= "name"; Exportdatautil edu = new Exportdatautil (); list<fldealer> dealerlist = fldealermanagerservice.getdealerlist (Fldealer); Linkedhashmap <string, string> showcolumn = new Linkedhashmap <string, string> ();//Get the configuration file path StringBuffer FilePath = new StringBuffer (), Filepath.append (This.getclass (). GetResource ("/")); Filepath.append (" Exportclassconfig.xml "); Xmloperutil xmlutil = new Xmloperutil (filepath.substring (5). toString ()); List elements = xmlutil.getelements ("/classes/dealermanagerdownload/property", false);//Gets the field to be exported for (int i= 0; i< Elements.size (); i++) {Element el = (Element) elements.get (i); Showcolumn.put (El.attributevalue ("ename"), El.attributevalue ("CNAME"));} Edu.exportdatatocsv (Dealerlist, Showcolumn, fileName, request, response);}
Java Export CVS