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 ...
随机推荐
- SpringMVC中的java.lang.ClassNotFoundException: org.aspectj.weaver.BCException 调试过程记录
报错原因 上文本描述 java.lang.NoClassDefFoundError: org/aspectj/weaver/BCException at java.lang.Class.getDecl ...
- RabbitMQ_安装配置与管理
RabbitMQ 安装配置与管理 安装 安装erlang虚拟机 Rabbitmq基于erlang语言开发,所有需要安装erlang虚拟机 #wget http://www.erlang.org/do ...
- String为值类型还是引用类型
关于String为值类型还是引用类型的讨论一直没有平息,最近一直在研究性能方面的问题,今天再次将此问题进行一次明确.希望能给大家带来点帮助. 如果有错误请指出. 来看下面例子: //值类型 int a ...
- 利用nodeJs来安装less以及编译less文件为css文件
NodeJs 使用nodejs安装less以及编译less文件为css文件 首先下载nodeJs的安装包,按照步骤,安装nodejs. 链接:http://pan.baidu.com/s/1dEsqY ...
- hdu4081
hdu4081 题意 给出n个点坐标,每个点有权值,要求得到一颗生成树,且其中有一条道路修建不需要花费,但是要求这条道路所连接的两点的权值之和除以剩下所有道路的距离花费最大. 分析 首先求最小生成树, ...
- C. Friends
C. Friends 题意 对于任一点,求到此点距离不超过6的节点数. 分析 第一次dfs,形成一个以 1 为根的有向树,设 down[i][j] 为以i为根节点,距离 i 点距离不超过 j 的节点数 ...
- 利用React/anu编写一个弹出层
本文将一步步介绍如何使用React或anu创建 一个弹出层. React时代,代码都是要经过编译的,我们很多时间都耗在babel与webpack上.因此本文也介绍如何玩webpack与babel. 我 ...
- C#之out修饰符、ref修饰符、params修饰符的简单介绍
一.out修饰符 1.调用一个带有输出参数的方法也需要使用out 修饰符,但是作为输出变量传递的本地变量在将他们作为输出变量传递前不需要赋值(因为调用后会改变或丢失),编译器允 许 ...
- js for循环 等腰三角形demo
<script> for(var i=1;i<10;i++){ for(var j=1;j<10-i;j++){document.write(" ")} f ...
- 基于servlet和ajax的聊天室
(手贱点了更新发布时间,发布时间变成6-9...) 2017-5-20,在这个奇特的日子,我不再满足于在本地测试javaweb,于是在上腾讯云买了第一个云服务器,由于是学生认证,所以一个月只要10块钱 ...