`
hoho922
  • 浏览: 32326 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Java对Excel导入数据库功能实例

 
阅读更多
package com.action.payslip;

import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import jxl.Cell;
import jxl.CellType;
import jxl.NumberCell;
import jxl.Sheet;
import jxl.Workbook;

public class PayslipExcelImport {
	
	 static String createTableSql = "";// 创建数据库的sql
	 static String colType = "TEXT";// 字段类型
	 static String key = "id";// 主键
	 static String charSet = "utf8";// 表格字符类型
	 static String ENGINE = "InnoDB";// 表格类型
	 static String tableName = "tempExcelToMysql";// 表名称
	 static String colName = "col";// 默认字段名
	 static Connection conn = null;
	 public static void main(String args[]) {
	  try {
	   // 构建Workbook对象, 只读Workbook对象
	   // 直接从本地文件创建Workbook
	   // 从输入流创建Workbook
	   System.out.println("start load file-------------------------");
	   InputStream is = new FileInputStream("D:/user.xls");// 创建输入
	   jxl.Workbook rwb = Workbook.getWorkbook(is);
	   Sheet rs = rwb.getSheet(0); // 读取第一个sheet
	   int colNum = rs.getColumns();// 列数
	   int rowNum = rs.getRows();// 行数
	   System.out.println("colNum rowNum------------------" + rowNum + ","
	     + colNum);
	   System.out.println("start create base-------------------------");
	   getConntion();
	   String tableSql = getCreateTableSql(rowNum, colNum);
	   Statement st = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
	   st.execute(tableSql);
	   st.close();
	   System.out.println("create base end -------------------------");
	   String sql = getColName(rowNum, colNum);
	   PreparedStatement ps = null;
	   String strValue = "";
	   ps = conn.prepareStatement(sql);
	   for (int i = 1; i < rowNum; i++) {
	    strValue = "";
	    for (int j = 0; j < colNum; j++) {
	     Cell c = rs.getCell(j, i);
	     strValue = c.getContents();
	     ps.setString(j + 1, strValue);
	    }
	    ps.addBatch();
	   }
	   ps.executeBatch();
	   conn.commit();
	   if (ps != null) {
	    ps.close();
	   }
	   System.out.println(" insert end-------------------------");
	   close();
	  } catch (Exception e) {
	   e.printStackTrace();
	  }
	 }
	 static String getCreateTableSql(int rowNum, int colNum) {
	  // 可以做成可配置文件
	  createTableSql = "create table " + tableName + "( `" + key
	    + "` bigint(12) NOT NULL auto_increment, ";
	  String temp = "";
	  for (int j = 0; j < colNum; j++) {
	   temp = temp + "`" + colName + j + "` " + colType + " DEFAULT NULL,";
	  }
	  createTableSql = createTableSql + " " + temp + " PRIMARY KEY (`" + key
	    + "`)" + ") ENGINE=" + ENGINE + " DEFAULT CHARSET=" + charSet
	    + ";";
	  return createTableSql;
	 }
	 static String getColName(int rowNum, int colNum) {
	  // 可以做成可配置文件
	  String colSql = "";
	  String colValue = "";
	  for (int j = 0; j < colNum; j++) {
	   colSql = colSql + "`" + colName + j + "`,";
	   colValue = colValue + "" + "?,";
	  }
	  return "insert into " + tableName + " ("
	    + colSql.substring(0, colSql.lastIndexOf(",")) + ")values("
	    + colValue.substring(0, colValue.lastIndexOf(",")) + ")";
	 }
	 static void getConntion() {
	  try {
	   String driver_class = "com.mysql.jdbc.Driver";
	   String connection_url = "jdbc:mysql://localhost:3306/jeecg?useUnicode=true&characterEncoding=utf-8";
	   String user_name = "root";
	   String db_password = "root";
	   Class.forName(driver_class);
	   conn = DriverManager.getConnection(connection_url, user_name,
	     db_password);
	   conn.setAutoCommit(false);
	  } catch (Exception e) {
	   e.printStackTrace();
	  }
	 }
	 static void close() {
	  if (conn != null) {
	   try {
	    conn.close();
	   } catch (SQLException e) {
	    // TODO Auto-generated catch block
	    e.printStackTrace();
	   }
	  }
	 }

}

分享到:
评论
1 楼 贝塔ZQ 2016-09-29  
java对excel操作,可以通过PageOffice操作读取单元格内容,存取到数据库中的,可以看看他们官网上的事例demo。

相关推荐

    java操作excel导入数据库

    java操作excel导入数据库,代码、注释、实例

    Java实现Excel导入导出数据库的方法示例

    主要介绍了Java实现Excel导入导出数据库的方法,结合实例形式分析了java针对Excel的读写及数据库操作相关实现技巧,需要的朋友可以参考下

    将excel导入到mysql数据库实例代码

    通常我们都用到的是将数据库的数据导出到excel中,这个例子讲解如何将excel的数据导入的数据库中,这对数据的备份有重大的意义。

    将excel数据插入到数据库中去demo.zip

    将excel数据插入到数据库中去的一个实例,实例里面有jar包和实例数据库。

    Java实现批量导入excel表格数据到数据库中的方法

    主要介绍了Java实现批量导入excel表格数据到数据库中的方法,结合实例形式详细分析了java导入Excel数据到数据库的具体步骤与相关操作技巧,需要的朋友可以参考下

    java中操作excel实例代码

    很完整的实例,用eclipse导入工程即可,里面需要的jar包(jxl.jar)都有,简单的操作了excel,数据库,实现了导入导出等功能,可以自己建立数据库,本软件中使用的是oracle数据库的连接和驱动。

    Java 操作Excel实例

    小编辛苦地为初级者编写了一个Java利用第三方工具包操作Excel,实现读取Excel以及将Excel导入数据库,希望你们能用得着

    Java导入导出EXCEl(POI)

    JavaWeb中将数据从Excel表导入到数据库的实例,对应博客http://blog.csdn.net/tmaskboy/article/details/51755305

    excel导入导出

    该实例用java编写,用于将excel中的数据导入到数据库,或将数据库中的数据查出来显示在网页上,导出到excel中...

    JAVA 范例大全 光盘 资源

    实例92 Java操作Excel文件 237 第11章 Java高级特性 245 实例93 自动装箱与拆箱 245 实例94 for/in循环 247 实例95 参数不确定(可变长参数) 249 实例96 方法改变(协变式返回类型) 251 实例97 静态导入 252...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

     《Java开发实战1200例》分为I、II两卷共计1200个例子,包括了开发中各个方面最常用的实例,是目前市场上实例最全面的开发类图书;书中实例来源于多位工程师的多年积累,具有很强的实用性。 本书是第II卷,以开发...

    java导出excel表格源码下载-importer-exporter:3D城市数据库客户端,用于3D城市模型数据的高性能导入和导出

    java导出excel表格源码下载3D 城市数据库导入器/导出器 3D 城市数据库导入器/导出器是一个基于 Java 的客户端,用于 . 它允许高性能加载和提取 3D 城市模型数据。 支持 CityGML 2.0 和 1.0 支持 CityJSON 1.0 通过...

    Java JDK实例宝典

    全部代码出自电子工业出版社夏先波的《Java JDK实例宝典》一书,本书以J2SE 5.0为开发环境,选取Java应用的典型实例,循序渐进地介绍了Java语言的各种开发方法和技巧,实例代码注释详细规范,思路清晰。 第1章 ...

    Java网络爬虫源码

    由于项目需要,特研究了一段时间关于java爬虫的相关技术,发现一个比较好用的爬虫框架--WebMagic,只需少量代码即可实现一个爬虫,本项目就是基于它的一个简单实现,导入项目即可运行,项目只有两个类,一个用于抓取...

Global site tag (gtag.js) - Google Analytics