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;
}
}
servlet+jsp导入Excel到mysql数据库的更多相关文章
- 使用phpExcel导入Excel进入Mysql数据库
1.http://phpexcel.codeplex.com/下载phpExcel 2. <? require_once 'PHPExcel.php'; require_once 'PHPExc ...
- python2.7爬取豆瓣电影top250并写入到TXT,Excel,MySQL数据库
python2.7爬取豆瓣电影top250并分别写入到TXT,Excel,MySQL数据库 1.任务 爬取豆瓣电影top250 以txt文件保存 以Excel文档保存 将数据录入数据库 2.分析 电影 ...
- 【转】 如何导入excel数据到数据库,并解决导入时间格式问题
在办公环境下,经常会用到处理excel数据,如果用写程序导入excel数据到数据库那就太麻烦了,涉及解析excel,还要各种格式问题,下面简单利用数据库本身支持的功能解决这类导入问题. 准备 创建表 ...
- 利用kettle组件导入excel文件到数据库
利用kettle组件导入excel文件到数据库 1. 实现目标 把excel文件内容导入到目标表中:然后用java调用kettle的转换.excel文件的内容仅仅有两列,示比例如以下: wat ...
- jsp页面直接读取mysql数据库数据显示
jsp页面直接读取mysql数据库数据显示: <%@page import="java.sql.ResultSet"%> <%@page import=" ...
- Excel与MySQL数据库的导入与导出
应用场景 在许多时候,我们希望数据能够很好地在各个系统之间转移,同时便于非专业人员阅读,如果程序员一点点打字导出的话,不知道要打到什么时候,于是我们便采用日常工作中常用的Excel表格来作为媒介,将数 ...
- JSP导入EXCEL样式
http://demo.gcpowertools.com.cn/spreadjs/exceliosample/exceliosample/ Java实现导入Excel: 1.做一个jsp页面,页面包括 ...
- 使用PHPExcel导入Excel到MySql
.连接数据库的connection.php文件 <?php //修改下面代码来联接数据库 // mysql_connect打开一个到 MySQL 服务器的连接,如果成功则返回一个 MySQL 连 ...
- jsp页面上读取MySQL数据库datetime时间显示问题
mysql数据库中时间字段选用了datetime,如果通过java实现在jsp页面上显示时间为"年-月-日 时:分"等格式,那么如下代码就会有不同的结果! 实体类中两个变量: p ...
随机推荐
- MapReduce运行流程分析
研究MapReduce已经有一段时间了.起初是从分析WordCount程序开始,后来开始阅读Hadoop源码,自认为已经看清MapReduce的运行流程.现在把自己的理解贴出来,与大家分享,欢迎纠错. ...
- CoreOS, Kubernetes, etcd
CoreOS CoreOS Container Linux is the leading container operating system, designed to be managed and ...
- 在JBoss AS7中进行项目部署
http://developer.51cto.com/art/201111/305178.htm
- 【 js 基础 】作用域和闭包
一.编译过程 常见编译性语言,在程序代码执行之前会经历三个步骤,称为编译. 步骤一:分词或者词法分析 将由字符组成的字符串分解成有意义的代码块,这些代码块被称为词法单元. 例子: var a = 2 ...
- 关于jQuery表单选择中prop和attr的区别。
今天用jQuery学习表单这一章节的内容,再次遇到表单全选时,不能进行第二次全选的情况.反复查看测试仍然找不到是什么原因.后来在网上查到原来是jQuery1.6以后的版本用到的是prop.用attr的 ...
- R中用黏贴板读取excel数据以及用R生成人名
本人尚在超级菜鸟级别,中间有些代码写的很low,请不要见笑! 1.今天先跟大家分享一个小技巧,用黏贴板将excel中的数据读进R 首先选中要读入R的数据 如图,上面是我分析的病人相关资料,Ctrol+ ...
- angularjs中使用轮播图指令swiper
我们在angualrjs移动开发中遇到轮播图的功能 安装 swiper npm install --save swiper 或者 bower install --save swiper 引入文件 ...
- 分清css的em和rem
在css中单位长度用的最多的是px.em.rem,这三个的区别是: px是固定的像素,一旦设置了就无法因为适应页面大小而改变. em和rem相对于px更具有灵活性,他们是相对长度单位,意思是长度不是定 ...
- 关于HBuilder的一些使用技巧。
在HBuilder中一个名为扩展代码块的功能. 扩展代码块 看,它就在上方工具栏的工具选项中,分为自定义html代码块, 自定义js代码块, 自定义css代码块, 自定义jquery代码块. 以下便是 ...
- [BZOJ4907]柠檬
4709: [Jsoi2011]柠檬 Time Limit: 10 Sec Memory Limit: 128 MB Description Flute 很喜欢柠檬.它准备了一串用树枝串起来的贝壳, ...