Excel的匯入並對資料庫批量操作

2021-09-26 03:28:35 字數 3349 閱讀 5792

js中的ajax:

var formdata = new formdata();

//單個檔案

//多個檔案

var formdata = new formdata();

var files = $('根據id取值')[0].files;

for (var i = 0; i < files.length; i++)

$.ajax(

error: function()

})

工具類:

//service中會呼叫這個類

public class excelimportutils

//@描述:是否是2007的excel,返回true是2007

public static boolean i***cel2007(string filepath)

/*** 驗證excel檔案

* @param filepath

* @return

*/public static boolean validateexcel(string filepath)

return true;

}}

controller層:

@controller

public class blacklistimportcontroller

}

service層:

@service

public class blacklistimportservice

string filename = mfile.getoriginalfilename

if(!excelimportutils .validateexcel(filename))

if(filename == "" || filename == null || mfile.getsize() == 0)

inputstream is = null;

workbook = null;

try else

string statinfor = readexcelvalue(book);

if (stateinfor.equals("匯入檔案中黑名單履歷資料為空"))else if (stateinfor.equals("匯入成功"))else if (stateinfor.equals("黑名單表新增匯入失敗"))else if (stateinfor.equals("使用者表黑名單狀態修改失敗"))

} catch (ioexception e) finally

if (is != null)

} catch (ioexception e)

}responsemap.put("state", 0);

responsemap.put("msg", "匯入失敗!");

return responsemap;

} private string readexcelvalue(workbook book)

blacklisthisory blacklisthisory = new blacklisthisory();

//getrow() 獲取行 未知的需要遍歷

//getcell() 獲取列 已知的引數裡可以寫死值

//getrow().getcell() 獲取某行某列值 引數控制某行某列

blacklisthisory.setclientmstcode(sheet.getrow(x).getcell(0).tostring().trim());

clientmstcriteria clientmstcriteria = new clientmstcriteria();

clientmstcriteria.createcriteria().andclientmstnameequalto(sheet.getrow(x).getcell(1).tostring().trim());

if (clientmstlist.size() > 0)else

if ("設定黑名單".equals(sheet.getrow(x).getcell(2).tostring().trim()))else

blacklisthisory.setreason(sheet.getrow(3).getcell(x).tostring().trim());

blacklisthisory.setclientdel(false);

//userid

blacklisthisory.setcreateuserid(18);

blacklisthisory.setcreatedate(new date());

if (blacklisthisory != null || blacklisthisory.tostring().trim().length() !=0)

}} if(blacklisthistories.size() == 0)

int state = impblacklisthisory(blacklisthisories);

if (state == 1)else if (state == -2)else if (state == -3)else if(state == 0)

return errormsg.tostring();

} private int impblacklisthistory(listdatalist)

blacklisthistory blacklisthistory;

listblacklisthistorylist = new arraylist<>();

hashmapblacklisthistoryhashmap = new hashmap<>();

//當datalist中只有一列值得時候走這個

stringbuffer codecond = new stringbuffer();

blacklisthistoryhashmap.put(datalist.get(0).getclientmstcode,datalist.get(0));

for(int i = 1; i < datalist.size(); i++)

//對excel中的資料和使用者表匹配 進行驗證

if (clientmstslist.size() > 0)

blacklisthisorylist.add(blacklisthisory);}}

if (insertnum > 0 && updatenum >0)else if(insertnum < 0)else if (updatenum < 0)

return constants.state_failed;

}}

Excel批量匯入資料庫

在上個系統中需要用到excel整體匯入的功能整體的核心思路如下 1 首先將需要匯入的excel上傳至伺服器 2 為了避免檔名重複,重新命名上傳的excel檔案 3 將上傳的excel檔案讀入datatable中 4 將datatable讀入資料庫中 實現起來還是比較簡單的,核心 如下 介面需要乙個f...

Excel批量匯入到資料庫

using system using system.collections.generic using system.linq using system.web using system.web.ui using system.web.ui.webcontrols using system.data...

從Excel批量匯入資料到資料庫

1.讀取網路路徑的excel檔案 流檔案格式 2.獲取excel的每一行資料,並驗證學校班級是否存在,並獲取對應的schoolid和classid 3.批量儲存學生資訊,並返回儲存成功的行數 匯入關於excel的pom檔案 org.apache.poigroupid poiartifactid 3....