java excel 匯入試題

2021-09-02 20:15:33 字數 4780 閱讀 4116

js讀取匯入的名稱到對應的位置顯示

$(function() );

});function importexcel()

$("#importp").submit();

}

html**實現

選擇要上傳的檔案

後台**實現

/**

* 批量匯入試題

}

方法實現

/**

* 批量匯入試題

* @param file 檔案

* @param companyid 公司id

* @return

* @throws exception

*/public string updateimportquestionexcel(multipartfile file, long companyid) throws exception

// 試題內容,專業,正確答案,試題型別,試題難度

if (stringutils.isempty(content) || stringutils.isempty(subjectid) || stringutils.isempty(isasr) || stringutils.isempty(type) || stringutils.isempty(level))

logger.info("試題型別:" + type);

switch (type)

// 專業id必須是大於0的正整數

if (!stringutils.isnumber(subjectid)||long.parselong(subjectid)<=0)

//該 專業id必須是該公司所有

nxbquerysubject nxbquerysubject=new nxbquerysubject();

nxbquerysubject.setcompanyid(companyid);

nxbquerysubject.setsubjectid(long.parselong(subjectid));

listsubjectlist = nxbsubjectdao.getsubjectlist(nxbquerysubject);

if (subjectlist==null||subjectlist.size()==0)

// // 考點必須是大於0的正整數

// if (!stringutils.isnumber(pointid)||long.parselong(pointid)<=0)

// 試題難度

logger.info("試題難度:" + level);

switch (level)

int typeint = convertutils.objecttoint(type);

// 如果為判斷題最多2個選項

if (typeint == 3)

if (stringutils.isnotempty(optiond) || stringutils.isnotempty(optione)

|| stringutils.isnotempty(optionf) || stringutils.isnotempty(optiong))

}// 如果不是判斷題,選項必須大於等於4個小於等於7個選項

if (typeint != 3)

}// 如果為多選題正確答案必須在兩個以上

if (typeint == 2 && isasr.trim().length() < 2)

// 如果為單選題或者判斷題答案只能有乙個

if (typeint == 1 || typeint == 3)

}// 選項不能超過7個字元

if (isasr.trim().length() > 7)

// 驗證正確答案不能輸入其他字元

char asr = isasr.tostring().trim().tochararray();

string asrstr = "";

for (int y = 0; y < asr.length; y++)

}isasr = asrstr.substring(0, asrstr.length() - 1);

question question = new question();

question.setstatus(1);

// 試題型別

int qsttype = typeint;

question.setqsttype(qsttype);

// 驗證專案id

long subjectidlong = long.valueof(subjectid.trim());

for (int x = 0; x < subjectr.size(); x++)

}// 如果輸入的專業不匹配

if (question.getsubjectid() == null || question.getsubjectid().intvalue() <= 0)

// 驗證考點

if(stringutils.isnotempty(pointid))

}//調整答案順序

if(typeint==2)

isasr=isasrs.substring(0,isasrs.length()-1);}}

question.setlevel(convertutils.objecttoint(level));

question.setqstcontent(content);

question.setisasr(isasr);

question.setqstanalyze(analyze);

question.setaddtime(new date());

question.setauthor("admin");

question.setcompanyid(companyid); // 公司id

questiondao.addonequestion(question);

int aasc = 64;

liststr = new arraylist();

// 把選項的值放入list中

str.add(optiona);

str.add(optionb);

str.add(optionc);

str.add(optiond);

str.add(optione);

str.add(optionf);

str.add(optiong);

listoptionlist = new arraylist<>();

for (int k = 0; k < str.size(); k++) ;

option.setoptorder(string.valueof(data));

optionlist.add(option);}}

map> map = new hashmap<>();

map.put("optionlist", optionlist);

optiondao.addoptionbatch(map);

}} return null;

}/**

* 獲得hsscell內容

* * @param cell

* @return

*/public string getcellvalue(hssfcell cell)

} return value.trim();

} string trimzero(string str)

return str;

}

工具類

public abstract class convertutils 

public static final int objecttoint(object o) else else

} catch (exception var2) }}

}

試題模板如下所示:

專案中所用的依賴為:

poi

poi-2.5.1-final

20040804

org.apache.ant

ant1.9.3

資料庫插入 

insert into nxb_exam_options (

) values

(#,#,#,

#, #,#)

java Excel檔案匯入匯出

增加乙個最後一行 hssfrow row sheet.createrow num 1 hssfcell footcell row.createcell 0 footcell.setcellvalue new hssfrichtextstring 合計 設定最後一行的樣式 hssfcellstyle ...

java excel匯入資料庫

最近專案中讓做將excel資料匯入到資料庫的功能,將自己的方法分享一下。步驟,如果檔案多讀取檔案的時候根據檔名判斷讀取流,讀取留後遍歷sheet,根據sheet名確定資料匯入哪個表中,對於表頭我們需要做對映關係,我這裡最初使用的是用.properties配置檔案,之後覺得放到map集合中更方便,則將...

java excel匯入匯出工具類

匯出excel param sheetname sheet名稱 param title 標題 param values 內容 param wb hssfworkbook物件 return public static hssfworkbook gethssfworkbook string sheetn...