91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

將excel文件導入java的方法

發布時間:2020-06-18 11:01:48 來源:億速云 閱讀:175 作者:Leah 欄目:編程語言

這篇文章將為大家詳細講解有關將excel文件導入java的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

思路分析:

1、我們要做導入,實際上也就是先文件上傳,然后讀取文件的數據。

2、我們要有一個導入的模板,因為我們導入的Excel列要和我們的數據字段匹配上,所以我們要給它來一個規定,也就是模板。

3、首先做一個導入信息的臨時表,用來存導入文件中的信息。每當導入的時候,我們先把表信息清空,再拿到數據放進來,然后我們對導入的數據進行檢查,最后才全部導入。

這樣做的目的是防止導入的數據和列沒有對上卻也直接導到了庫里面。

代碼分析

1、前端js代碼:

var actionPath = contextPath + "/alumni-import";
$(function() {
    //加載數據
    loadData();
    //上傳文件
    uploadFile({
        subfix: ['xls'],
        subfixTip: "請選擇Excel的xls文件!",
        successCall: function(data, status, a) {
            $('[name=attachementPath]').val(data.fileName);
            $.post(actionPath + "!importExcel", { "f_id": data.f_id }, function(data) {
                if (data.success) {
                    alertify.alert(data.message);
                    $("#myModal-import").modal("hide");
                    loadData();
                } else {
                    alertify.alert(data.message);
                }

            }, "json");
        }
    });
    //導入
    $("#btn-import").click(function() {
        var html = template("importTpl");
        $("#import-body").html(html);
        $("#myModal-import").modal();
    });
    //確認導入
    $("#btn-sure").click(function() {
        var type = $("#indentity-type").val();
        alertify.confirm("確定要全部導入嗎?", function(e) {
            if (!e) { return; } else {
                $.post("/alumni-import!saveReal?type=" + type, function(data) {
                    alertify.alert("導入成功!", function() {
                        location.href = "/alumni!hrefPage";
                    });
                }, "json");
            }
        });
    });
});50 
function loadData() {
    var options = {
        url: actionPath + "!page"
    };
    loadPaginationData(options);
}

2、后臺功能代碼

前端有四個請求,一個初始化頁面數據加載,當然,一開始是沒有數據的;一個導入文件上傳;一個確認導入;一個導入完成后頁面跳轉回要信息頁面(信息頁面有一個批量導入跳轉到這的導入頁面)。

第一個后最后一個就不講了。講一下第二個和第三個。

(1)第二個

//上傳文件后調用
    public void importExcel() {
        try {
            //清空臨時表的數據
            baseAlumniImportSrv.deleteAll();
            //讀取文件
            File file = gridFsDao.readFile(f_id);
            //把文件信息給臨時表
            int count = excelXYSrv.importExcel(file);
            //清空上傳的文件
            file.delete();
            sendSuccessMsg(count, "上傳成功" + count + "條數據");
        } catch (IOException e) {
            LOGGER.error(e);
            sendFailMsg(null, "上傳失敗");
        }
    }
@Override    //使用MongoDB GridFS
    public File readFile(String f_id) {
        //拿到文件
        GridFSDBFile gridFSFile = mongoGridFs.findOne(new Query(Criteria.where(F_ID).is(f_id)));
        if (gridFSFile == null) {
            return null;
        }
        String fileName = gridFSFile.getFilename();
        String extension = fileName.substring(fileName.lastIndexOf("."), fileName.length());
        InputStream ins = gridFSFile.getInputStream();
        String tmpFile = UUID.randomUUID().toString() + extension;
        File file = new File(tmpFile);
        try {
            OutputStream os = new FileOutputStream(file);
            int bytesRead = 0;
            byte[] buffer = new byte[8192];
            while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) {
                os.write(buffer, 0, bytesRead);
            }
            os.close();
            ins.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return file;
    }
/**
     * @param excelFile
     *            從excel中讀取數據,并存儲到數據庫臨時表中
     * @return
     * @throws IOException
     */
    @Override
    public int importExcel(File excelFile) throws IOException {
        List<List<Object>> datas = ExcelImportUtil.readExcel(excelFile);
        int count = 0;
        for (int i = 1; i < datas.size(); i++) {
            BaseAlumniImport entity = this.convert2Entity(datas.get(i));
            this.baseAlumniImportSrv.save(entity);
            count++;
        }
        return count;
    }

(3)第三個

public void saveReal() {
        int count = 0;
        List<BaseAlumniImport> importList = this.baseAlumniImportSrv.findAll();
        for (int i = 0; i < importList.size(); i += 10) {
            List<BaseAlumniImport> newlist = new ArrayList<>();
            if ((i + 10) < importList.size()) {
                newlist = importList.subList(i, i + 10);
            } else {
                newlist = importList.subList(i, importList.size());
            }
            count += excelXYSrv.saveReal(newlist, this.type);
        }
        sendSuccessMsg(count, "導入成功" + importList.size() + "條數據");
    }
@Override
    public int saveReal(List<BaseAlumniImport> importList, String type) {
        int count = 0;
        String alumniIdentityName = dicSrv.findById(DicAlumniIdentity.class, Integer.parseInt(type)).getValue();
        for (BaseAlumniImport inst : importList) {
            LOGGER.info(inst.getId());
            BaseAlumni v = this.importExportSrv.convert(inst);
            v.setId(IdKit.uuid());
            v.setCreateTime(new Date());
            v.setLastUpdate(new Date());
            this.baseAlumnidDao.save(v);
            this.baseAlumniImportSrv.deleteById(inst.getId());
            count++;
        }
        return count;
    }
@Override
    public int saveReal(List<BaseAlumniImport> importList, String type) {
        int count = 0;
        String alumniIdentityName = dicSrv.findById(DicAlumniIdentity.class, Integer.parseInt(type)).getValue();
        for (BaseAlumniImport inst : importList) {
            LOGGER.info(inst.getId());
            BaseAlumni v = this.importExportSrv.convert(inst);
            v.setId(IdKit.uuid());
            v.setCreateTime(new Date());
            v.setLastUpdate(new Date());
            this.baseAlumnidDao.save(v);
            this.baseAlumniImportSrv.deleteById(inst.getId());
            count++;
        }
        return count;
    }

結果圖演示:

將excel文件導入java的方法

將excel文件導入java的方法

將excel文件導入java的方法

將excel文件導入java的方法

上述就是小編為大家分享的將excel文件導入java的方法了,如果您也有類似的疑惑,不妨參照上述方法進行嘗試。如果想了解更多相關內容,請關注億速云行業資訊。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

孟津县| 邛崃市| 手游| 德庆县| 大关县| 德钦县| 胶州市| 青海省| 重庆市| 九龙坡区| 太仆寺旗| 禄劝| 兴化市| 三都| 宁明县| 沙河市| 安义县| 永州市| 拉孜县| 砚山县| 临洮县| 普兰县| 延川县| 师宗县| 衡山县| 鄂州市| 彭泽县| 涞源县| 嘉义县| 当雄县| 南丰县| 辽阳县| 宝鸡市| 尤溪县| 广西| 张家界市| 烟台市| 德令哈市| 吴江市| 新平| 霞浦县|