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 ...
随机推荐
- 镜像命名的最佳实践 - 每天5分钟玩转 Docker 容器技术(18)
我们已经学会构建自己的镜像了.接下来的问题是如何在多个 Docker Host 上使用镜像. 这里有几种可用的方法: 用相同的 Dockerfile 在其他 host 构建镜像. 将镜像上传到公共 R ...
- Longest Palindromic Substring2015年6月20日
Given a , and there exists one unique longest palindromic substring. 自己的解决方案; public class Solution ...
- 关于JS的页面跳转
"window.location.href"."location.href"是本页面跳转 "parent.location.href"是上一 ...
- Selenium 高阶应用之WebDriverWait 和 expected_conditions
Seleniium 是相当不错的一个第三方测试框架,可惜目前国内已经无法访问其官网(FQ可以). 不知道大家是否有认真查看过selenium 的api,我是有认真学习过的.selenium 的api中 ...
- R TUTORIAL: VISUALIZING MULTIVARIATE RELATIONSHIPS IN LARGE DATASETS
In two previous blog posts I discussed some techniques for visualizing relationships involving two o ...
- 部署项目到weblogic时提示文件被锁,导致报错
部署项目到weblogic中出现一个“黄叹号!”.报错如下: (1) Deployment is out of date due to changes in the underlying projec ...
- Redis 小白指南(四)- 数据的持久化保存(草稿)
Redis 小白指南(四)- 数据的持久化保存 简介 因为 redis 将数据保存在内存中,很容易诱发的一个问题就是,程序崩溃或服务器重启等情况如何保证数据的正常存储. 当我们以 redis 作为主数 ...
- 一些java考过的测试题和自己制作模拟服务端和客户端
媒体 1,java环境变量: PATH: .;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; CLASSPATH: .;%JAVA_HOME%\jre\lib\rt.jar ...
- 如何在vuejs中抽出公共代码
当我们在使用vue构建中大型项目时,通常会遇到某些经常用的方法以及属性,比如说搭建一个员工管理系统,请求的url需要一个共同的前缀,或者在某几个view中需要用到时间,这个时间是通过某方法格式化之后的 ...
- Javascript事件模型(一):DOM0事件和DOM2事件
javascript事件模型,本文主要有以下内容: DOM0事件模型 DOM2事件模型 一.DOM0事件模型 早期的事件模型称为DOM0级别. DOM0的事件具有极好的跨浏览器优势, 会以最快的速度 ...