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...