此步驟須要藉助jspsmartupload.jar,poi_3.2.jar和jxl.jar包
1.在jsp界面中:java
<form id="file_form" action="servlet/InStaff?type=excToMqsql"
enctype="multipart/form-data" method="post">
<input type="file" name="file" id="file_input">
<input type="submit" value="導入數據" class="file">
</div>
</form>
2.對應的servlet的代碼:
須要先上傳文件,web
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setCharacterEncoding("utf-8");
String type = request.getParameter("type");
if (type.equals("excToMqsql")) {
/* *先對文件進行上傳,代碼以下 */
SmartUpload su = new SmartUpload();
su.initialize(this.getServletConfig(), request, response);
// 設定容許上傳的文件(經過擴展名限制)
su.setAllowedFilesList("xls,xlsx");
try {
su.upload();
Files files = su.getFiles();
String temp = "";
for (int i = 0; i < files.getCount(); i++) {
File file = files.getFile(i);
temp = "/upload/staff.xls";//將上傳的文件放在根目錄下的upload文件夾下並命名爲固定的文件名
file.saveAs(temp, SmartUpload.SAVE_VIRTUAL);//將文件進行上傳
}
System.out.println("上傳成功!");
/* *文件上傳成功後,將調用文件導入的方法; */
InStaff es = new InStaff();//建立自身對象;
es.getDate(request, response);//調用導入Excel數據的方法;
// ExcelToMySql(request, response);
} catch (SmartUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
// ------------------------------------------
//導入Excel信息的方法
// ----------------------------------------
public void getDate(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String errMessage = null;
boolean flags=false;
List liststu = new ArrayList();
// 找到上傳後的文件目錄,並建立IO流
java.io.File f = new java.io.File(request.getSession().getServletContext().getRealPath("")+"\\upload\\staff.xls");
InputStream is = new FileInputStream(f);
try {
// 建立工做簿
Workbook wb = Workbook.getWorkbook(is);
// 建立工做表
jxl.Sheet sheet = wb.getSheet(0);
String content = null;
for (int i = 1; i < sheet.getRows(); i++) {
staffBean staff = new staffBean();
for (int j = 0; j < sheet.getColumns(); j++) {
content = sheet.getCell(j, i).getContents();
// System.out.print(content);
if (staff.getName() == null)//
{
staff.setName(sheet.getCell(j, i).getContents());
continue;
}
if (staff.getIdcard() == null) {
staff.setIdcard(sheet.getCell(j, i).getContents());
continue;
}
}
flags=getStaffInfo(staff);
}
/* * 文件導入成功後進入提示界面 */
if(flags){
System.out.println("總表導入成功!");
response.sendRedirect("CompareServlet?type=show");
}else{
System.out.println("總表未導入成功!");
errMessage = "導入總表未成功,請從新導入!";
request.setAttribute("error", errMessage);
request.getRequestDispatcher("../tips.jsp").forward(request,
response);
}
} catch (BiffException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/* *sql的添加方法,此方法也能夠寫到Dao文件,而後再servlet中調用; */
public boolean getStaffInfo(staffBean staff) {
boolean flag=false;
Connection conn = null;
PreparedStatement pt = null;
ResultSet rs = null;
String sql = "insert into staff(name,idcard) values (?,?)";
jdbcDtiver jdbc = new jdbcDtiver();
conn = jdbc.Driver();
try {
pt = conn.prepareStatement(sql);
pt.setString(1, staff.getName());
pt.setString(2, staff.getIdcard());
int n=pt.executeUpdate();
if(n>0){
flag=true;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return flag;
}
Excel文件導入代碼,但願對你們有用sql