读取Excel中内容,并保存进数据库

步骤

  1. 建立数据库连接
  2. 读取文件内容 (fileInputStream 放进POI的对应Excel读取接口,实现Excel文件读取)
  3. 获取文件各种内容(总列数,总行数,各个单元格的内容)
  4. 执行SQL语句,存进数据库

public static void main(String[] args) {
Connection con = null;
//驱动程序名
String driver = "";
//URL指向要访问的数据库名mydata
String url = "";
//MySQL配置时的用户名
String user = "";
//MySQL配置时的密码
String password = "";
try {
//加载驱动程序
Class.forName(driver);
//1.getConnection()方法,连接MySQL数据库!!
con = DriverManager.getConnection(url,user,password);
if(!con.isClosed())
System.out.println("Succeeded connecting to the Database!");
//2.创建statement类对象,用来执行SQL语句!!
Statement statement = con.createStatement(); Workbook wb =null;
Sheet sheet = null;
Row row = null;
List<Map<String,String>> list = null;
//文件路径
String filePath = "";
wb = readExcel(filePath);
if(wb != null){
//用来存放表中数据
list = new ArrayList<Map<String,String>>();
//获取第一个sheet
sheet = wb.getSheetAt(0);
//获取最大行数
int rownum = sheet.getPhysicalNumberOfRows();
//获取第一行
row = sheet.getRow(0);
//获取最大列数
int colnum = row.getPhysicalNumberOfCells();
//格式化日期 dateFormat.format
SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
//循环读取所有内容
for (int i = 1; i<rownum; i++) {
Row row1=sheet.getRow(i); //sql语句生成并执行
String sql="";
statement.execute(sql);
}
}
//遍历解析出来的list
for (Map<String,String> map : list) {
for (Entry<String,String> entry : map.entrySet()) {
System.out.print(entry.getKey()+":"+entry.getValue()+",");
}
System.out.println();
}
}catch(Exception e) {
System.out.println(e.getMessage());
}finally {
try {
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }
//读取excel
public static Workbook readExcel(String filePath){
Workbook wb = null;
if(filePath==null){
return null;
}
String extString = filePath.substring(filePath.lastIndexOf("."));
InputStream is = null;
try {
is = new FileInputStream(filePath);
if(".xls".equals(extString)){
return wb = new HSSFWorkbook(is);
}else if(".xlsx".equals(extString)){
return wb = new XSSFWorkbook(is);
}else{
return wb = null;
} } catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return wb;
}

最新文章

  1. Hemodynamic response function (HRF) - FAQ
  2. 简析.NET Core 以及与 .NET Framework的关系
  3. Remove Duplicates from Sorted List II
  4. B-index、bitmap-index、text-index使用场景详解
  5. 如何更好的通过Inflate layout的方式来实现自定义view
  6. JS之原型对象
  7. SyntaxError: missing ; before statement 错误的解决
  8. Centos环境下部署游戏服务器-SVN
  9. vs2010代码注释自动生成api文档
  10. 查看mininet交换机中的流表
  11. Linux学习之十一、环境变量的功能
  12. Android 开发—— 小工具,大效率
  13. Core Animation 文档翻译 (第七篇)——改变Layer的默认动画
  14. C语言尝试在不同源文件中调用程序段
  15. 通讯录设计ver1.0版本
  16. Android提供的layout文件存放位置
  17. hadoop 完全分布式安装
  18. 匿名内部类的参数引用只能是final,可能遇到的问题及其解决
  19. 20145216《网络对抗》逆向及BOF基础实践
  20. jboss &amp; eclipse 集成

热门文章

  1. 特性property
  2. hihocoder offer收割编程练习赛12 A 歌德巴赫猜想
  3. ReactJS-1-基本使用
  4. 短视频SDK在广电系统的解决方案
  5. oracle 时间格式转化以及计算
  6. 谈谈JVM内存区域的划分
  7. vue脚手架引入swiper
  8. Vue+Bootstrap实现购物车程序(3)
  9. 【计算机网络】2.2 Web和HTTP
  10. oracle亲手安装过程