servlet+jsp导入Excel到mysql数据库

package khservlet;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;

import khinfo.Pinyin4jUtil;

import com.jspsmart.upload.File;
import com.jspsmart.upload.Files;
import com.jspsmart.upload.SmartUpload;
import com.jspsmart.upload.SmartUploadException;
import com.khdb.DBManager;
import com.khdb.IDCreate;
import com.khdb.showsykhtype;

public class UploadExcelServlet extends HttpServlet {

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
SmartUpload upload = new SmartUpload();
upload.initialize(this.getServletConfig(), request, response);
try {
upload.upload();

Files files = upload.getFiles();
File file = files.getFile(0);
String path = this.getServletContext().getRealPath("excel") + "/"
+ System.currentTimeMillis() + file.getFileName();
file.saveAs(path);

// 拼音码加入
Pinyin4jUtil py = new Pinyin4jUtil();
FileInputStream fileInputStream = new FileInputStream(path);

ArrayList<showsykhtype> list = readExcel(fileInputStream);
Connection conn = null;
PreparedStatement ps = null;
SimpleDateFormat format = null;
for (int i = 0; i < list.size(); i++) {
try {
conn = DBManager.getDBManager().getConnection();
String sql = ("insert into khtype (kid,kname,jmgh,zbkh,address,sname,aztime,lxr,phon,pyzjm,ktime,xtbh)values(?,?,?,?,?,?,?,?,?,?,sysdate(),?)");
ps = conn.prepareStatement(sql);
ps.setString(1,IDCreate.getID("khtype", "kh", conn));
ps.setString(2, list.get(i).getKname());
ps.setString(3, list.get(i).getJmgh());
ps.setString(4, list.get(i).getZbkh());
// System.out.println(list.get(i).getAztime());
ps.setString(5, list.get(i).getAddress());
ps.setString(6, list.get(i).getSname());
ps.setString(7, list.get(i).getAztime() == null
|| list.get(i).getAztime().trim().equals("") ? null
: list.get(i).getAztime());
ps.setString(8, list.get(i).getLxr());
ps.setString(9, list.get(i).getPhon());
ps.setString(10,Pinyin4jUtil.converterToFirstSpell(list.get(i).getKname()).toUpperCase());
ps.setString(11, list.get(i).getXtbh());
ps.execute();

} catch (Exception e) {
e.printStackTrace();
} finally {
if (ps != null) {
try {
ps.close();
} catch (SQLException e) {

e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {

e.printStackTrace();
}
}
}
}

} catch (SmartUploadException e) {
e.printStackTrace();
}

}

public ArrayList<showsykhtype> readExcel(InputStream in)
throws IOException {
ArrayList<showsykhtype> list = new ArrayList<>();

POIFSFileSystem system = new POIFSFileSystem(in);
HSSFWorkbook book = new HSSFWorkbook(system);// 读excel工作表
HSSFSheet sheet = book.getSheetAt(0);
int index = 1;
HSSFRow row = null;
HSSFCell cell = null;
while ((row = sheet.getRow(index++)) != null) {// 行不能为空
int cellindex = 0;
showsykhtype khtype = new showsykhtype();
while (cellindex<=10) {//写死导入的列
cell=row.getCell(cellindex);
if (cell!=null&&cell.getColumnIndex() == 0) {
khtype.setKname(cell.toString());
} else if (cell!=null&&cell.getColumnIndex() == 1) {
khtype.setJmgh(cell.toString());
} else if (cell!=null&&cell.getColumnIndex() == 2) {
khtype.setZbkh(cell.toString());
} else if (cell!=null&&cell.getColumnIndex() == 3) {
khtype.setAddress(cell.toString());
} else if (cell!=null&&cell.getColumnIndex() == 4) {
khtype.setSname(cell.toString());
} else if (cell!=null&&cell.getColumnIndex() == 5) {
//System.out.println(cell);
khtype.setAztime(cell.toString());
} else if (cell!=null&&cell.getColumnIndex() == 6) {
khtype.setLxr(cell.toString());
} else if (cell!=null&&cell.getColumnIndex() == 7) {
khtype.setPhon(cell.toString());
} else if (cell!=null&&cell.getColumnIndex() == 8) {
khtype.setKtime(cell.toString());
} else if (cell!=null&&cell.getColumnIndex() == 9) {
khtype.setXtbh(cell.toString());
}
cellindex++;
}
System.out.println();
list.add(khtype);

}

return list;
}

}

posted on 2017-04-18 21:35  开发路上  阅读(355)  评论(0编辑  收藏  举报

导航