غالبًا ما أواجه الحاجة إلى استيراد وتصدير التفوق في العمل. لدي مثال إجابة موجزة لمشاركتها معك.
لا تقل الكثير من الهراء ،
1. حزمة جرة مطلوبة:
2. الكود الأمامي:
ieport.jsp:
<٪@page import = "java.util.date" ٪> <٪@page language = "java" contentType = "text/html ؛ charset = utf- "http://www.w.org/tr/xhtml/dtd/xhtml-transitional.dtd"> <html xmlns = "http://www.w.org//xhtml"> <head> /> <title> صفحة الاستيراد/التصدير </title> <script type = "text/javaScript"> function exportFile () {window.location.href = "<٪ = request.getContextPath () ٪>/export.go" ؛ } </script> </head> <body> <form action = "import.go" method = "post" enctype = "multipart/form-data"> file: <input type = "file" name = "uploadfile"/> <br> </br> <input type = "prident" value = </html>Success.JSP:
<٪@ page language = "java" contentType = "text/html ؛ charset = utf-" pageencoding = "utf-" ٪> <٪@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core/core Transitional // en "" http://www.w.org/tr/xhtml/dtd/xhtml-transitional.dtd "> <html xmlns =" http://www.w.org//xhtml "> <head> http-equev = charset = utf- "/> <title> صفحة النجاح </title> <script type =" text/javaScript "> // var secuserlist = '$ {secuserList}' ؛ // ALERT (SecUserList) ؛ </script> </head> <body> <c: if test = "$ {type == 'import'}"> <viv> استيراد بنجاح! </viv> <c: foreach edda = "$ {secUserList}" var = "secuser"> <viv> id: $ {secuser.userid} | name: $ {secuser.username} | password: $ {secuSer.userPassword} </c: foreach> </c: <div> التصدير بنجاح! </viv> </c: if> </body> </html>3. رمز الخلفية:
وحدة التحكم:
حزمة com.controller ؛ استيراد java.io.file ؛ استيراد java.util.list ؛ استيراد javax.annotation.Resource ؛ استيراد javax.servlet.http.httpservletrequest ؛ استيراد javax.servlet.http.httpservletresponse ؛ استيراد org.springframework.stereotype.controller ؛ استيراد org.springframework.web.bind.annotation.requestmapping ؛ استيراد org.springframework.web.bind.annotation.requestparam ؛ استيراد org.springframework.web.multipart.multipartfile ؛ استيراد org.springframework.web.servlet.modelandview ؛ استيراد com.domain.secuser ؛ استيراد com.service.ieeportService ؛ controller الفئة العامة ieportController {resource private ieportService iePortService ؛ requestmapping ("/import") publicandview importFile (requestparam (value = "uploadfile") multipartfile mfile ، httpservletrequest request ، httpservletponse) قائمة <SecUser> secUserList = iePortService.importFile (mfile ، rootpath) ؛ modelandview mv = new ModelAndView () ؛ mv.addobject ("type" ، "import") ؛ MV.AddObject ("SecuserList" ، SecUserList) ؛ mv.setViewName ("/success") ؛ إرجاع MV ؛ } @requestmapping ("/export") publicandview esportFile (httpservletresponse repress) {ieportService.exportFile (response) ؛ modelandview mv = new ModelAndView () ؛ mv.addobject ("type" ، "Export") ؛ mv.setViewName ("/success") ؛ إرجاع MV ؛ }} خدمة:
حزمة com.service ؛ استيراد java.io.file ؛ استيراد java.io.fileInputStream ؛ استيراد java.io.inputstream ؛ استيراد java.io.outputStream ؛ استيراد java.net.urlencoder ؛ استيراد java.text.simpledateformat ؛ استيراد java.util.arraylist ؛ استيراد java.util.date ؛ استيراد java.util.list ؛ استيراد javax.annotation.Resource ؛ استيراد javax.servlet.http.httpservletresponse ؛ استيراد org.apache.poi.hssf.usermodel.hssfrow ؛ استيراد org.apache.poi.hssf.usermodel.hssfsheet ؛ استيراد org.apache.poi.hssf.usermodel.hssfworkbook ؛ استيراد org.apache.poi.ss.usermodel.cellstyle ؛ استيراد org.apache.poi.ss.usermodel.font ؛ استيراد org.apache.poi.xssf.usermodel.xssfcell ؛ استيراد org.apache.poi.xssf.usermodel.xssffont ؛ استيراد org.apache.poi.xssf.usermodel.xssfrow ؛ استيراد org.apache.poi.xssf.usermodel.xssfsheet ؛ استيراد org.apache.poi.xssf.usermodel.xsssfworkbook ؛ استيراد org.springframework.stereotype.service ؛ استيراد org.springframework.web.multipart.multipartfile ؛ استيراد com.dao.ieportdao ؛ استيراد com.domain.secuser ؛ service public class ieportService {resource private ieportdao ieportdao ؛ القائمة العامة <SecUser> importFile (multipartfile mfile ، string rootpath) {list <ecUser> secUserList = new ArrayList <ecuser> () ؛ اسم ملف السلسلة = mfile.getoriginalfilename () ؛ سلسلة لاحقة = filename.substring (filename.lastindexof (".") + ، filename.length ()) ؛ String ym = new SimplEdateFormat ("Yyyy-MM"). Format (Date ()) ؛ String filePath = "TOPLOADFILE/" + ym + filename ؛ حاول {file file = ملف جديد (rootpath + filepath) ؛ if (file.exists ()) {file.delete () ؛ file.mkdirs () ؛ } آخر {file.mkdirs () ؛ } mfile.transferto (ملف) ؛ if ("xls" .equals (لاحقة) || ieportdao.importfile (SecUserList) ؛ } آخر إذا ("xlsx" .equals (لاحقة) || ieportdao.importfile (SecUserList) ؛ }} catch (استثناء e) {E.PrintStackTrace () ؛ } إرجاع SecUserList ؛ } القائمة الخاصة <SecUser> ImportXls (ملف الملف) {list <ecUser> secUserList = جديد ArrayList <ecUser> () ؛ inputStream هو = فارغ ؛ HSSfworkbook Horkbook = null ؛ حاول {iS = جديد fileInputStream (ملف) ؛ HorkBook = جديد HSSFWorkbook (IS) ؛ HSSFSheet HSHEET = HORMBOOK.GETSHEETAT () ؛ if (null! = hsheet) {for (int i = ؛ i <hsheet.getPhysicalNumberOfRows () ؛ i ++) {secuser su = new secuser () ؛ HSSFROW HROW = HSHEET.GETROW (i) ؛ su.SetUserName (hrow.getCell (). toString ()) ؛ su.SetUserPassword (hrow.getCell (). toString ()) ؛ SecUserList.add (su) ؛ }}} catch (استثناء e) {E.PrintStackTrace () ؛ } أخيرًا {if (null! = is) {try {is.close () ؛ } catch (استثناء e) {E.PrintStackTrace () ؛ }} if (null! = horkbook) {try {horkbook.close () ؛ } catch (استثناء e) {E.PrintStackTrace () ؛ }}} return SecUserList ؛ } القائمة الخاصة <SecUser> importxlsx (ملف الملف) {list <ecUser> secUserList = new ArrayList <SecUser> () ؛ inputStream هو = فارغ ؛ xssfworkbook xworkbook = null ؛ حاول {iS = جديد fileInputStream (ملف) ؛ XWorkBook = New XSSFWorkBook (IS) ؛ XSSfsheet Xsheet = Xworkbook.getSheetat () ؛ if (null! = xsheet) {for (int i = ؛ i <xsheet.getPhysicalNumberOfRows () ؛ i ++) {secuser su = new secuser () ؛ xssfrow xrow = xsheet.getRow (i) ؛ su.SetUserName (xrow.getCell (). toString ()) ؛ su.SetUserPassword (xrow.getcell (). toString ()) ؛ SecUserList.add (su) ؛ }} catch (استثناء e) {E.PrintStackTrace () ؛ } أخيرًا {if (null! = is) {try {is.close () ؛ } catch (استثناء e) {E.PrintStackTrace () ؛ }} if (null! = xworkbook) {try {xworkbook.close () ؛ } catch (استثناء e) {E.PrintStackTrace () ؛ }}} return SecUserList ؛ } public void esportfile (httpservletresponse respress) {simpleDateFormat df = new SimpleDateFormat ("yyyymmdd") ؛ OutputStream OS = NULL ؛ xssfworkbook xworkbook = null ؛ TREE {String filename = "user" + df.format (new Date ()) + ".xlsx" ؛ OS = response.getOutputStream () ؛ استجابة. reset () ؛ استجابة. استجابة. XWorkBook = جديد XSSFWorkBook () ؛ XSSFSheet Xsheet = Xworkbook.CreateSheet ("userlist") ؛ . . Xworkbook.write (OS) ؛ } catch (استثناء e) {E.PrintStackTrace () ؛ } أخيرًا {if (null! = os) {try {os.close () ؛ } catch (استثناء e) {E.PrintStackTrace () ؛ }} if (null! = xworkbook) {try {xworkbook.close () ؛ } catch (استثناء e) {E.PrintStackTrace () ؛ }}}}} / **. Xsheet.setColumnWidth (، *) ؛ Xsheet.setColumnWidth (، *) ؛ CellStyle CS = XWorkbook.CreateCellStyle () ؛ // تعيين cs.setalignment أفقي وعمودي (cellstyle.align_center) ؛ Cs.SetVerticalIngenment (cellstyle.vertical_center) ؛ // set font font headerfont = xworkbook.createfont () ؛ headerfont.setfontheightpoints ((قصيرة)) ؛ headerfont.setBoldweight (xssffont.boldweight_bold) ؛ Headerfont.setFontName ("安体") ؛ Cs.SetFont (HeaderFont) ؛ cs.setWrapText (true) ؛ // هل من الممكن لف الخط تلقائيًا xssfrow xrow = xsheet.createrw () ؛ XSSfcell Xcell = xrow.createcell () ؛ Xcell.setCellStyle (CS) ؛ Xcell.setCellValue ("معرف المستخدم") ؛ XSSfcell Xcell = xrow.createcell () ؛ Xcell.setCellStyle (CS) ؛ Xcell.setCellValue ("اسم المستخدم") ؛ XSSfcell Xcell = xrow.createcell () ؛ Xcell.setCellStyle (CS) ؛ Xcell.setCellValue ("كلمة المرور") ؛ } / ** * تعيين محتوى صفحة الورقة * param xworkbook * param xsheet * / private void setSheetContent (xssfworkbook xworkbook ، xssfsheet xsheet) {list <SecUser> secUserList = ieportdao.getSeCuserList () ؛ CellStyle CS = XWorkbook.CreateCellStyle () ؛ cs.setWraptext (صواب) ؛ if (null! = secUserList && secuserlist.size ()>) {for (int i = ؛ i <secUserList.size () ؛ i ++) {xssfrow xrow = xsheet.creatrow (i+) ؛ Secuser SecUser = secUserList.get (i) ؛ لـ (int j = ؛ j <؛ j ++) {xssfcell xcell = xrow.createcell (j) ؛ Xcell.setCellStyle (CS) ؛ Switch (j) {case: xcell.setCellValue (secuser.getuserid ()) ؛ استراحة؛ الحالة: xcell.setCellValue (secuser.getUserName ()) ؛ استراحة؛ الحالة: xcell.setCellValue (secuser.getuserPassword ()) ؛ استراحة؛ الافتراضي: استراحة ؛ }}}}}}داو:
حزمة com.dao ؛ استيراد java.sql.resultset ؛ استيراد java.sql.sqlexception ؛ استيراد java.util.arraylist ؛ استيراد java.util.list ؛ استيراد javax.annotation.Resource ؛ استيراد org.springframework.stereotePe.Repository ؛ استيراد com.domain.secuser ؛ استيراد org.springframework.jdbc.core.jdbctemplate ؛ استيراد org.springframework.jdbc.core.rowmapper ؛ repository الفئة العامة ieportdao {resource private jdbctemplate jdbctemplate ؛ private rowmapper <ecUsuser> surowMapper = null ؛ private ieportdao () {surowMapper = new RowMapper <ecUser> () {Override public secuser maprow (resultset rs ، int index) يلقي sqlexception {secuser secuser = new secuser () ؛ SecUser.setUserId (rs.getString ("user_id")) ؛ SecUser.setUserName (rs.getString ("user_name")) ؛ SecUser.SetUserPassword (rs.getString ("user_password")) ؛ إرجاع Secuser ؛ }} ؛ } public void importFile (list <ecUser> secUserList) {try {string sql = "insert in sec_user stable (uuid () ،؟ ،؟)" ؛ قائمة <Object []> paramslist = new ArrayList <Object []> () ؛ لـ (int i = ؛ i <secUserList.size () ؛ i ++) {secuser secuser = secUserList.get (i) ؛ Object [] params = new Object [] {secuser.getuserName () ، secuser.getuserPassword ()} ؛ paramslist.add (params) ؛ } jdbctemplate.batchupdate (SQL ، ParamSlist) ؛ } catch (استثناء e) {E.PrintStackTrace () ؛ }} القائمة العامة <SecUser> getSecUserList () {list <ecuser> sulist = new ArrayList <ecuser> () ؛ StringBuffer SB = New StringBuffer () ؛ SB.Append ("SELECT SU.USER_ID ، SU.USER_NAME ، su.user_password from sec_user su") ؛ حاول {sulist = jdbctemplate.query (sb.toString () ، surowmapper) ؛ } catch (استثناء e) {E.PrintStackTrace () ؛ } إرجاع Sulist ؛ }}اِختِصاص:
حزمة com.domain ؛ الفئة العامة secuser {String userId ؛ // معرف المستخدم اسم المستخدم ؛ // username string userPassword ؛ // password public string getUserId () {return userId ؛ } public void setUserId (String userId) {this.userId = userId ؛ } السلسلة العامة getUserPassword () {return userpassword ؛ } public void setUserPassword (string userpassword) {this.userPassword = userPassword ؛ } السلسلة العامة getUserName () {return username ؛ } public void setusername (string username) {this.userName = username ؛ }}4. ملف التكوين:
<؟ xml الإصدار = "." الترميز = "UTF-"؟> <web-app xmlns: xsi = "http://www.w.org//xmlschema-instance" xmlns = "http://java.sun.com/xml/ns/javaee" XSI: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app__. <splay-name> springspringmvcpoi </display-name> <-list-file-list> <lisplip-file> ieeport.jsp </iswith-file> </iship-file-lister> <!-حدد اسم ملف ومواقع application:> <context-param> </param-name> classpath: dataSource-context.xml </param-value> </suctext-param> <!-تكوين المستمع-> <stanker> <stlecter-class> org.springframework.web.context.contextloaderlistener </stanterer-class> </leacher> <! <Servlet-Name> dispatcherservlet </servlet-name> <Servlet-Class> org.springframework.web.servlet.dispatcherservlet </radlet-class> <!-تكوين موقع ملف تكوين springmvc-> <Ing-param> <Param-value> classpath: spring-mvc.xml </param-value> </ith-param> </servlet> <servlet mapping> <Sradlet-name> dispatcherservlet </servlet-name> <Url-pattern>*. اذهب </url-patern> <Filter-Name> nAffleenCodingFilter </filter-name> <lipter-class> org.springframework.web.filter.characterencodingfilter </filter-class> <filter-name> nAffleenCodingFilter </filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </ball-app>
<؟ xml الإصدار = "." الترميز = "utf-"؟> <beans xmlns = "http://www.springframework.org/schema/beans xmlns: p = "http://www.springframework.org/schema/p" Xmlns: mvc = "http://www.springframework.org/schema/mvc" xmlns: util = "http://www.springframework.org/schema/util XSI: Schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/sphns/spring-beans-..xsd http://www.springframework.org/sctxt http://www.springframework.org/schema/context/spring-context-..xsd http://www.springframework.org/schema/Aop <!-تكوين حلول عرض springmvc-> <bean> <property name = "prefix" value = "/web-inf/"> </sprement> <property name = "falue =".
<؟ xml الإصدار = "." الترميز = "utf-"؟> <beans xmlns = "http://www.springframework.org/schema/beans Xmlns: Context = "http://www.springframework.org/schema/context" xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-..xsd http://www.springframework.org/schema/context http://www.springframework.org/schemave <السياق: مكون المسح الضوئي package = "com"> </context: Component-Scan> </bans>
<؟ xml الإصدار = "." الترميز = "utf-"؟> <beans xmlns = "http://www.springframework.org/schema/beans xmlns: context = "http://www.springframework.org/schema/context http://www.springframework.org/schema/context المصدر-> <bean id = "datasource" تدمير method = "close"> <property name = "user" value = "$ {jdbc.User}"> </property> <property name = "password" value = "$ {jdbc.Password}" </propert name = "jdbcurl" value = "$ {jdbc.jdbcurl}"> </property> <!-عند استخدام الاتصالات في تجمع الاتصال ، يجب أن يكون عدد الاتصالات الجديدة في وقت واحد بواسطة cp-> <property name = "الحصول على" value = "" name = "initialPoolSize" value = "" "> </premart> <property name =" maxpoolsize "value =" "> </property> <property name =" minpoolsize "value =" ""> </property> value = ""> </sprement> <property name = "testConnectionOnCheckout" value = "false"> </sprention> <property name = "testConnectionOncheckin" value = "false"> </spleneration> <! value = ""> </fortpleration> <property name = "quivereretryDelay" value = ""> </sprement> <property name = "preferredtestquery" value = "select from dual"> </propert </bean> </bans>jdbc.driverclass = com.mysql.jdbc.driver jdbc.jdbcurl = jdbc: mysql: // localhost:/mydb jdbc.user = myuser jdbc.password = myuser
5. هيكل الدليل:
6
يستورد:
يصدّر:
ملاحظة:
1. هذا المبتدئ ، نظرًا لأنها لم تعرف بعد كيفية إضافة مرفقات ، فإنها تنشر جميع الكود وتضيف بنية الدليل. سوف تتعلم كيفية إضافة مرفقات في المستقبل ثم تعديلها.
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.