搜索
房产
装修
汽车
婚嫁
健康
理财
旅游
美食
跳蚤
二手房
租房
招聘
二手车
教育
茶座
我要买房
买东西
装修家居
交友
职场
生活
网购
亲子
情感
龙城车友
找美食
谈婚论嫁
美女
兴趣
八卦
宠物
手机

Java操作Jxl实现数据交互。三部曲——《第二篇》

[复制链接]
查看: 79|回复: 0

1万

主题

1万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
32646
发表于 2020-1-15 03:53 | 显示全部楼层 |阅读模式
Java利用Jxl实现.xsl及.xsls两种数据表格举行批量导入数据到SQL server数据库。

本文实现背景Web项目:前台用的框架是Easyui+Bootstrap团结利用必要引入响应的Js、Css文件页面:Jsp、阻挡请求:Servlet、逻辑处置赏罚:ClassBean、数据库:SQLserver
:Bean中利用SQL语句举行处置赏罚是公司内部方式,可更换为此外方式自行扩大!垂危看代码逻辑营业处置赏罚!
首先我们瞥见Easyui中的datagrid数据网格列表中没有任何数据:
Java操作Jxl实现数据交互。三部曲——《第二篇》  热点新闻 1867541-20200114212411526-1986862274

其次建立一个xsl文件以下是必要导入的数据格式:
Java操作Jxl实现数据交互。三部曲——《第二篇》  热点新闻 1867541-20191223132948745-282647329

让我们把留意力放到SQLserver数据库:
Java操作Jxl实现数据交互。三部曲——《第二篇》  热点新闻 1867541-20191223132922079-38585832

点击导入按钮后弹出一个窗口挑选我们刚刚建立的Excel文件,末端点击导入
Java操作Jxl实现数据交互。三部曲——《第二篇》  热点新闻 1867541-20200114213219558-1381924875



导入乐成此时现在Easyui中的datagrid数据网格中已有了7条我们之前建立的记录!
Java操作Jxl实现数据交互。三部曲——《第二篇》  热点新闻 1867541-20200114213426350-230644934






我们回到数据库举行检察数据,公然和预期结果一样与Excel表格数据同等证实导入乐成!
Java操作Jxl实现数据交互。三部曲——《第二篇》  热点新闻 1867541-20191223133021344-437891447

Jsp代码:
注:from中的enctype="multipart/form-data"属性是必加的,要想举行上传必须利用HTML中的文件控件,且必须利用enctype举行分装,表示将表单依照二进制的方式提交。即全数的利用表单此时不再是别离提交,否则将全数内容都依照二进制的方式提交。假如要上传文件,表单则必须封装。可是当一个表单利用了enctype="multipart/form-data"封装后,此外的非表单控件的内容就没法经过request内置工具获得,此时在Servlet中必须挪用SmartUpload类中供给的getRequest()方式获得全数的请求参数
  1. 导入                                                                 
  2.                                                                                     小我信息列表                    
  3.                                                         
  4.             
  5.         
  6.                     [table=98%][/table]        
  7.    
  8.                                                                                                                                                                               
  9.                         
  10.                                                                                                                  
  11.                         
  12.                                                             
  13.             
  14.         
  15.    
复制代码

Servlet代码以下:
Servlet中阻挡前台的importExamInfo导入请求,在挪用Bean层中的导入逻辑处置赏罚方式!
  1. package or.og.jxldemo;import java.io.IOException;import java.sql.SQLException;import java.util.Vector;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.jspsmart.upload.SmartUpload;import com.jspsmart.upload.SmartUploadException;import com.pantech.base.common.exception.WrongSQLException;import com.pantech.base.common.tools.JsonUtil;import com.pantech.base.common.tools.MyTools;import net.sf.json.JSONArray;public class ImportFileBean_Servlet extends HttpServlet {    private static final long serialVersionUID = 1L;           protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        doPost(request, response);    }    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        request.setCharacterEncoding("UTF-8");//request编码典范        response.setContentType("text/html;charset=UTF-8");//reponse典范同一                Vector vector=new Vector();        JSONArray jsonArray = new JSONArray();         Vector jsonV = null;//返回结果集        JSONArray jal = null;//返回json工具                ImportFileBean  bean = new ImportFileBean(request);        ServletConfig sc = this.getServletConfig();        SmartUpload mySmartUpload = new SmartUpload("UTF-8");        mySmartUpload.initialize(sc, request, response);//获得request及response工具        try {            mySmartUpload.upload();        } catch (SmartUploadException exception1) {            // TODO 自动天生 catch 块            exception1.printStackTrace();        }        getParameters(request, bean,mySmartUpload);//初始化参数        String active = MyTools.StrFiltr(mySmartUpload.getRequest().getParameter("active"));//获得前台提交的利用典范                        //导入信息        if(active.equalsIgnoreCase("importExamInfo")){            try {                    bean.importExamInfo(mySmartUpload);//挪用bean层中逻辑方式                    jsonArray = JsonUtil.addJsonParams(jsonArray, "MSG", bean.getMSG());//转换JSON数据格式                    response.getWriter().write(jsonArray.toString());//返回办事器端响应                                    } catch (SQLException e) {                    // TODO 自动天生 catch 块                    e.printStackTrace();                } catch (SmartUploadException e) {                    // TODO 自动天生 catch 块                    e.printStackTrace();                } catch (WrongSQLException e) {                    // TODO 自动天生 catch 块                    e.printStackTrace();                }        }                    }            //获得页面参数    public void getParameters(HttpServletRequest request,ImportFileBean bean,SmartUpload mySmartUpload){                }}
复制代码
Servlet中阻挡前台的查询datadrig数据网格请求,在挪用Bean层中的查询方式!
  1. package or.og.jxldemo;import java.io.IOException;import java.sql.SQLException;import java.util.Vector;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.jspsmart.upload.SmartUploadException;import com.pantech.base.common.exception.WrongSQLException;import com.pantech.base.common.tools.JsonUtil;import com.pantech.base.common.tools.MyTools;import com.pantech.base.common.tools.TraceLog;import net.sf.json.JSONArray;public class ImportFileBean_Svl extends HttpServlet {           protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        doPost(request, response);    }    /**     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)     */    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        //设备字符编码为UTF-8                request.setCharacterEncoding("UTF-8");                response.setContentType("text/html;charset=UTF-8");                                String active = MyTools.StrFiltr(request.getParameter("active"));// 拿取前台的active值                int pageNum = MyTools.parseInt(request.getParameter("page"));    //获得页面page参数 分页                int pageSize = MyTools.parseInt(request.getParameter("rows"));    //获得页面rows参数 分页                                Vector jsonV = null;//返回结果集                JSONArray jal = null;//返回json工具                ImportFileBean bean = new ImportFileBean(request);                this.getFormData(request, bean); //获得SUBMIT提交时的参数(AJAX适用)                System.out.println("active:--"+active);                                                //查询全数信息                if("queryList".equalsIgnoreCase(active)){                    try {                        try {                            jsonV=bean.queryList(pageNum,pageSize);                        } catch (WrongSQLException e) {                            // TODO Auto-generated catch block                            e.printStackTrace();                        }                        jal = (JSONArray)jsonV.get(2);                        response.getWriter().write("{\"total\":" + MyTools.StrFiltr(jsonV.get(0)) + ",\"rows\":" + jal.toString() + "}");                                                TraceLog.Trace("response:   "+jal.toString());                    } catch (SQLException e) {                        e.printStackTrace();                    }                }                                                //删除全数信息                if("deleteTJXX".equalsIgnoreCase(active)) {                    try {                        bean.deleteTJXX();                        //返回利用信息                        jal=JsonUtil.addJsonParams(jal, "MSG", bean.getMSG());                        response.getWriter().write(jal.toString());                    } catch (WrongSQLException e) {                        // TODO Auto-generated catch block                        e.printStackTrace();                    } catch (SQLException e) {                        // TODO Auto-generated catch block                        e.printStackTrace();                    }                                    }                }        /**    * 从界面没获得参数    * @date     * @author:yeq    * @param request    * @param MajorSetBean    */    private void getFormData(HttpServletRequest request, ImportFileBean bean){    }    }
复制代码
Bean代码:
注:Bean中的导入方式中别离对.xsl和.xsls两种表格数据文件举行差别处置赏罚!
[code]package or.og.jxldemo;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.sql.SQLException;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Vector;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.ss.usermodel.Cell;import org.apache.poi.ss.usermodel.Row;import org.apache.poi.xssf.usermodel.XSSFSheet;import org.apache.poi.xssf.usermodel.XSSFWorkbook;import com.jspsmart.upload.SmartFile;import com.jspsmart.upload.SmartFiles;import com.jspsmart.upload.SmartUpload;import com.jspsmart.upload.SmartUploadException;import com.pantech.base.common.db.DBSource;import com.pantech.base.common.exception.WrongSQLException;import com.pantech.base.common.tools.MyTools;public class ImportFileBean {        private HttpServletRequest request;     private DBSource db;        private String MSG;//提醒消息        /**     * Title:
     * Description:
     * @param request     */    //获得工具    public ImportFileBean(HttpServletRequest request) {        this.request = request;        this.db = new DBSource(request);    }        //查询全数信息    public Vector queryList(int pageNum,int pageSize)throws WrongSQLException,SQLException{        Vector vec = null;        String sql="SELECT [编号],[体检者],convert(nvarchar(19),[体检日期],21)as 体检日期,[体检机构],[体检结果] " +                 "FROM [V_小我档案_体检记录] ";        vec = db.getConttexJONSArr(sql, pageNum, pageSize);        return vec;    }                //删除全数信息    public void deleteTJXX()throws WrongSQLException,SQLException{        String sql="delete from [V_小我档案_体检记录] ";        if(db.executeInsertOrUpdate(sql)) {            this.setMSG("删除乐成");        }else {            this.setMSG("删除失利");        }    }            /**     * @Title: saveimpxls     * @Description: 导入体检信息     * @author lupengfei     * @date 2016-7-19     */    @SuppressWarnings("unchecked")    public void importExamInfo(SmartUpload mySmartUpload) throws SQLException, ServletException, IOException, SmartUploadException, WrongSQLException{        DBSource db = new DBSource(request);        String sql="";        String sqlmx="";        Vector vec = null; // 结果集                String tempsheet="";//sheet名        String tempsoin="";//第1列        String tempsoin2="";        String templine="";//第3列        int sheetnum=0;//sheet计数        String BH="";//编号        String TJZXM="";//体检者姓名        String TJRQ="";//体检日期        String TJJGMC="";//体检机构称号        String TJJG="";//体检结果                String path = "c:/temp/upload";        File f1 = new File(path);          //当文件夹不存在时建立        if (!f1.exists()) {              f1.mkdirs();          }        //Workbook workbook = null;        HSSFWorkbook workbook = null;        XSSFWorkbook workbook2 = null;        Vector vectormx=new Vector();        SmartFiles files = mySmartUpload.getFiles(); //获得文件                SmartFile file= null;        //判定                if(files.getCount() > 0){            file = files.getFile(0);            if(file.getSize()

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2006-2014 全椒百姓网-全椒知名**,发布及时新鲜的全椒新闻资讯 生活信息 版权所有 法律顾问:高律师 客服电话:0791-88289918
技术支持:迪恩网络科技公司  Powered by Discuz! X3.2
快速回复 返回顶部 返回列表