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();
}
}
}
}
分享到:
相关推荐
java操作excel导入数据库,代码、注释、实例
主要介绍了Java实现Excel导入导出数据库的方法,结合实例形式分析了java针对Excel的读写及数据库操作相关实现技巧,需要的朋友可以参考下
通常我们都用到的是将数据库的数据导出到excel中,这个例子讲解如何将excel的数据导入的数据库中,这对数据的备份有重大的意义。
将excel数据插入到数据库中去的一个实例,实例里面有jar包和实例数据库。
主要介绍了Java实现批量导入excel表格数据到数据库中的方法,结合实例形式详细分析了java导入Excel数据到数据库的具体步骤与相关操作技巧,需要的朋友可以参考下
很完整的实例,用eclipse导入工程即可,里面需要的jar包(jxl.jar)都有,简单的操作了excel,数据库,实现了导入导出等功能,可以自己建立数据库,本软件中使用的是oracle数据库的连接和驱动。
小编辛苦地为初级者编写了一个Java利用第三方工具包操作Excel,实现读取Excel以及将Excel导入数据库,希望你们能用得着
JavaWeb中将数据从Excel表导入到数据库的实例,对应博客http://blog.csdn.net/tmaskboy/article/details/51755305
该实例用java编写,用于将excel中的数据导入到数据库,或将数据库中的数据查出来显示在网页上,导出到excel中...
实例92 Java操作Excel文件 237 第11章 Java高级特性 245 实例93 自动装箱与拆箱 245 实例94 for/in循环 247 实例95 参数不确定(可变长参数) 249 实例96 方法改变(协变式返回类型) 251 实例97 静态导入 252...
《Java开发实战1200例》分为I、II两卷共计1200个例子,包括了开发中各个方面最常用的实例,是目前市场上实例最全面的开发类图书;书中实例来源于多位工程师的多年积累,具有很强的实用性。 本书是第II卷,以开发...
java导出excel表格源码下载3D 城市数据库导入器/导出器 3D 城市数据库导入器/导出器是一个基于 Java 的客户端,用于 . 它允许高性能加载和提取 3D 城市模型数据。 支持 CityGML 2.0 和 1.0 支持 CityJSON 1.0 通过...
全部代码出自电子工业出版社夏先波的《Java JDK实例宝典》一书,本书以J2SE 5.0为开发环境,选取Java应用的典型实例,循序渐进地介绍了Java语言的各种开发方法和技巧,实例代码注释详细规范,思路清晰。 第1章 ...
由于项目需要,特研究了一段时间关于java爬虫的相关技术,发现一个比较好用的爬虫框架--WebMagic,只需少量代码即可实现一个爬虫,本项目就是基于它的一个简单实现,导入项目即可运行,项目只有两个类,一个用于抓取...