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 ...
随机推荐
- CentOS 7.2下安装Mono 5.0
微软Build2017大会期间.NET领域的.NET core之外,就是Visual Studio For Mac,大家都知道Visual Studio For Mac 是基于Mono运行的,Mono ...
- Add Two Numbers 2015年6月8日
You are given two linked lists representing two non-negative numbers. The digits are stored in rever ...
- Linux中重定向
转:http://blog.csdn.net/songyang516/article/details/6758256 1重定向 1.1 重定向符号 > 输出 ...
- SmartCoder每日站立会议02
1.站立会议内容 经过昨天一天的学习,大家了解到了很多新的知识,在各自任务实现方面也遇到了问题,比如首页的css样式实现.API接口的连接和地图接入的样式,经过今日站立会议,大家在一起讨论了各自出现的 ...
- js实现导航菜单栏随着屏幕的滚动进行滚动的效果
$(window).scroll(function () { var $nav = $(".floatingMenu ul li"), length = $nav.length-1 ...
- css reset的重置作用(可取还是不可取,取决于你)
一.重置的理由 当今流行的浏览器中,有些都是以自己的方式去理解css规范,这就会到只有的浏览器对css的解释与设计师的css定义初衷相冲突,使得网页的样子在某些浏览器下能正确按照设计师的想法显示.,但 ...
- cs6安装
[按下面步骤操作 无需序列号] ·打上补丁 永远无需序列号 (现在网上没什么能用的序列号) ·1双击CS软件安装,选择试用 ·2创建ID 输入自己邮箱和密码,姓名可以随意输入 ·3安装完成后 运行一次 ...
- 导入java项目时出现红色叹号问题的解决
问题:导入java项目时出现红色叹号(如下图所示) 原因:引入项目的某些jar包跟自己电脑上的位置不一样: 解决方案:步骤如下 (1)右键红色叹号所在项目————>build path————& ...
- 分页简单的封装SSM+easyUi
public class Page { private int page = 1; //初始页 private int rows = 10; //一页多少行数据 private String q;// ...
- 后台开发之IO缓冲区管理
Linux系统IO中write原型为 ssize_t write(int filedes, const void * buff, size_t nbytes) ; 当调用write写数据的时候,调 ...