This article describes the JSP upload Excel and Excel inserted into the database method. Share to everyone for your reference. Specifically as follows:
 
This import Excel is bound to Pojo, (disadvantage) Excle the header must be a Pojo field value
 
1. HTML page:
 
 
 
<form id= "MyForm" method= "post" enctype= "Multipart/form-data" > <table> <tr> <td></td> <td> <input type= "file" name= "filepath" id= "filepath" class= "Easyui-validatebox" Required=true validty Pe= "equallength[4]" missingmessage= file! "value=" "/> </td> </tr> <tr align=" center "> <td Col span= "2" > <a id= "btn1" class= "Easyui-linkbutton" data-options= "iconcls: ' Icon-ok '" style= "width:60px" Onc Lick= "Subform ();" 
    >OK</a> <a id= "btn2" class= "Easyui-linkbutton" data-options= iconcls: ' Icon-cancel ' style= ' width:60px ' Onclick= "Closedig ();"
>Cancel</a> </td> </tr> </table> </form> <script type= "Text/javascript" >
  Function Subform () {if ($ (' #myform '). Form (' Validate ') {/** var filepath = $ ("#filepath"). Val ();
  alert (filepath); $.ajax ({url: ' Excleimport ', Typs: "POST", data: {"filepath": filepath}, Async:false, error:fUnction (Request) {$ (' #dg '). DataGrid (' reload ');
    Closedig (); $.messager.alert ("Action Prompt", "Operation successful!")
    "," info ");
    }, Success:function (data) {alert ("Success");
  }
  });
  **/var filepath = $ ("#filepath"). Val (); 
  var re =/(\\+)/g; 
  var filename = filepath.replace (Re, "#"); 
  Cut the path string to intercept var one = Filename.split ("#"); 
  Gets the last of the array, that is, the filename var two = one[one.length-1]; 
   The filename is then intercepted to obtain the suffix name var three = Two.split ("."); 
  Gets the last string of the interception, that is, the suffix name, var, three[three.length-1]; 
  Add a suffix name type that needs to be judged var tp = "Xls,xlsx"; 
  Returns the position of the qualifying suffix name in the string var rs = Tp.indexof (last);
   if (Rs!=-1) {$ ("#myform"). attr ("Action", "Excleimport");
  $ ("#myform"). Submit (); }else{$.messager.alert ("Action hint", "Your selected upload file is not a valid XLS or xlsx file!")
   "," error "); 
  return false; } else {$.messager.alert ("Action prompt", "Please select Upload file!")
 "," error ");
 }} </script> 
  
 2. Java code: 
 
 
 
 
@RequestMapping ("/excleimport") public void Excleimport (HttpServletRequest request) throws IOException, Exception {RE Quest.setcharacterencoding ("Utf-8"); 
  Set encoding//Get Disk File entry Factory Diskfileitemfactory factory = new Diskfileitemfactory (); 
  Gets the path to which the file needs to be uploaded String Path = Request.getrealpath ("/upload/kaku");
  File Uploaddir = new file (path);
  if (!uploaddir.exists ()) {uploaddir.mkdirs (); 
  } factory.setrepository (Uploaddir); 
  Set the size of the cache, when the upload file capacity exceeds the cache, directly to the temporary storage Room factory.setsizethreshold (1024*1024); 
  High-level API file upload processing servletfileupload upload = new Servletfileupload (factory); 
  Can upload multiple files list<fileitem> List = (list<fileitem>) upload.parserequest (request); 
   for (Fileitem item:list) {//Get the form's property name String name = Item.getfieldname (); If the obtained form information is a plain text message if (Item.isformfield ()) {//Gets the user-specific input string, the name is very good because the form submits a string Val 
    UE = Item.getstring (); 
   Request.setattribute (name, value); //pairs of incoming non simpleString to handle, such as binary pictures, movies these else {/** * below three steps, mainly to obtain the name of the upload file///Get pathname String value = Item 
    . GetName (); 
    Index to the last backslash int start = Value.lastindexof ("\"); 
    Intercept the string name of the uploaded file, plus 1 to remove the backslash, string filename = value.substring (start+1);
    File suffix name String prefix = filename.substring (Filename.lastindexof (".") + 1);
    Cardcenter cardcenter = new Cardcenter (); 
    Request.setattribute (name, filename); The exception that is actually written to disk//It throws is caught with exception//item.write (new File (Path,filename)),//manually written by a third party//outputstrea 
    m out = new FileOutputStream (new File (Path,filename)); 
    InputStream in = Item.getinputstream (); List<cardcenter> Listfromexcel = (list<cardcenter>) exelutil.exportlistfromexcel (in, prefix, CardCenter)
    ;
    This.cardCenterService.excleImport (Listfromexcel); 
    /*int length = 0; 
    byte [] buf = new byte[1024]; 
    System.out.println ("Get the total volume of uploaded files:" +item.getsize ()); In.read (BUF) storing data every time it is readIn buf array while (length = In.read (BUF))!=-1) {//Fetch data in BUF array write to (output stream) on disk out.write (buf, 0, le 
    Ngth); 
    } */In.close (); 
   Out.close ();
 } 
  } 
} 
  
 3. Java code: 
 
 
 
 
public class Exelutil {//First column begins private static int start = 0;
 Last column ordinal private static int end = 0;
 public static string getsubstring (String str) {return str.substring (0,str.lastindexof ("."));  
  /** * Method Description: Exported from Excel file sheet to list * @param file * @param sheetnum * @return * @throws IOException * @author * @date 2013-3-25 PM 10:44:26 * @comment/public static list<?> exportlistfromexcel (file file, String file Format,object dtoobj) throws IOException {return Exportlistfromexcel (new FileInputStream (file), fileformat,dtoobj) 
 ;  /** * Method Description: Exported by Excel stream sheet to list * @param is * @param extensionname * @param sheetnum * @return * @throws IOException * @author * @date 2013-3-25 PM 10:44:03 * @comment * * public static list<?> Exportlistfromexce 
  L (InputStream is,string fileformat,object dtoobj) throws IOException {workbook = null; 
  if (Fileformat.equals (Bizconstant.xls)) {workbook = new Hssfworkbook (IS);else if (fileformat.equals (bizconstant.xlsx)) {workbook = new Xssfworkbook (IS); 
 Return Exportlistfromexcel (workbook,dtoobj); /** * Method Description: Exported from specified sheet to list * @param workbook * @param sheetnum * @return * @author * @date 2013-3-25 afternoon 1 0:43:46 * @comment * * private static list<object> exportlistfromexcel (Workbook workbook, Object dtoobj) {Lis
  t<object> list = new arraylist<object> ();
  string[] model = NULL; 
  Sheet Sheet = workbook.getsheetat (0); 
  Analytic formula results Formulaevaluator evaluator = Workbook.getcreationhelper (). Createformulaevaluator (); 
  int Minrowix = Sheet.getfirstrownum (); 
  int Maxrowix = Sheet.getlastrownum ();
   for (int rowix = Minrowix; Rowix <= Maxrowix; rowix++) {Object obj = null;
    if (Rowix==minrowix) {start = Sheet.getrow (Rowix). Getfirstcellnum ();
   End = Sheet.getrow (Rowix). Getlastcellnum (); 
   Row row = Sheet.getrow (Rowix);  
   StringBuilder sb = new StringBuilder (); for (int i = StArt I < end; 
    i++) {Cell cell = Row.getcell (new Integer (i)); 
    Cellvalue Cellvalue = evaluator.evaluate (cell);
     if (Cellvalue = = null) {sb.append (bizconstant.separator+null); 
    Continue ///After the formula parsing, only Boolean, numeric, and string three data types exist, in addition to the error//The remaining data types, according to the official document, can completely ignore the switch (cellvalue.getcellt 
     Ype ()) {case Cell.CELL_TYPE_BOOLEAN:sb.append (Bizconstant.separator + cellvalue.getbooleanvalue ()); 
    Break Case Cell.cell_type_numeric://The date type here will be converted to a numeric type, which needs to be discriminated against if (dateutil.iscelldateformatted (Cell)) {SB 
     . Append (Bizconstant.separator + cell.getdatecellvalue ()); 
     else {sb.append (bizconstant.separator + cellvalue.getnumbervalue ()); 
    } break; 
     Case Cell.CELL_TYPE_STRING:sb.append (Bizconstant.separator + cellvalue.getstringvalue ()); 
    Break 
    Case Cell.CELL_TYPE_FORMULA:break; 
    Case Cell.CELL_TYPE_BLANK:break; 
   Case CELL.CELL_TYPE_ERROR:  Break 
    Default:break;
    } if (Rowix==minrowix) {String index = string.valueof (SB);
    String Realmodel =index.substring (1, Index.length ());
   Model =realmodel.split (",");
    }else{String index = string.valueof (SB);
    String Realvalue =index.substring (1, Index.length ());
    String[] Value =realvalue.split (",");
    Field mapping try {dtoobj =dtoobj.getclass (). newinstance ();
    catch (Instantiationexception e) {e.printstacktrace ();
    catch (Illegalaccessexception e) {e.printstacktrace ();
    obj = Reflectutil (dtoobj,model,value);
   List.add (obj); 
 } return list; /** * Method Description: Field mapping Assignment * @param objone * @param listname * @param listvales * @return * @author * @date 2013 -3-25 PM 10:53:43 * @comment * * * @SuppressWarnings ("deprecation") private static object Reflectutil (object Objone, STR
  Ing[] ListName, string[] listvales) {field[] fields = Objone.getclass (). Getdeclaredfields (); for (iNT i = 0; i < fields.length;
   i++) {fields[i].setaccessible (true); for (int j = 0; J < Listname.length; J +) {if (Listname[j].equals (Fields[i].getname ())) {try {if (fie Lds[i].gettype (). GetName (). Equals (Java.lang.String.class.getName ())) {//String type if (listvales[j]!=null
       ) {Fields[i].set (Objone, listvales[j]);
       }else{Fields[i].set (Objone, ""); } else if (Fields[i].gettype (). GetName (). Equals (Java.lang.Integer.class.getName ()) | | Fields[i].gettype (). GetName (). Equals ("int")) {//Integer type if (listvales[j]!=null) {Fields[i].set (objone, (int) Doub 
       Le.parsedouble (Listvales[j])); 
       }else{Fields[i].set (Objone,-1);
        }else if (Fields[i].gettype (). GetName (). Equals ("Date") {//date type if (listvales[j]!=null) {
       Fields[i].set (Objone, Date.parse (listvales[j));
}else if (Fields[i].gettype (). GetName (). Equals ("Double")        || Fields[i].gettype (). GetName (). Equals ("float")) {//double if (listvales[j]!=null) {Fields[i].set (Objon 
       E, double.parsedouble (Listvales[j])); 
       }else{Fields[i].set (Objone, 0.0);
     A catch (IllegalArgumentException e) {e.printstacktrace ());
     catch (Illegalaccessexception e) {e.printstacktrace ();
    } break;
 }} return objone;
 }
} 
  
 I hope this article will help you with your JSP programming.