📄 importxlstomysql.java
字号:
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import jxl.*;
import java.io.*;
import org.apache.log4j.Logger;
import org.apache.log4j.BasicConfigurator;
//import java.util.Properties;
//import org.apache.log4j.PropertyConfigurator;
import pub.*;
public class importXLSToMysql {
private static final Logger logger=Logger.getLogger(importXLSToMysql.class);
/*
static
{
Properties pro=new Properties();
try
{
FileInputStream input=new FileInputStream("log4j.properties");
pro.load(input);
}catch(FileNotFoundException e)
{
e.printStackTrace();
}catch(IOException e)
{
e.printStackTrace();
}
//配置log4j环境
PropertyConfigurator.configure(pro);
}*/
public static void main(String [] args)
{
//使用默认的log4j环境配置
BasicConfigurator.configure() ;
int F_UserType;
String F_NickName;
/**
* 真实姓名
*/
String F_RealName;
/**
* 机构名称
*/
String F_Company;
/**
* 职务
*/
String F_Office;
/**
* 性别
*/
int F_Sex;
/**
* F_Phone
*/
String F_Phone;
/**
* 手机号码
*/
String F_Mobile;
/**
* 传真
*/
String F_Fax;
/**
* 网站
*/
String F_Web;
/**
* 个人照片
*/
String F_Address;
/**
* 个人介绍
*/
String F_CompanyDetail;
//需要发送的sql语句
StringBuffer sqlBuf = new StringBuffer();
sqlBuf.append("insert into db_carduser(F_UserType,F_NickName,F_RealName,F_Company,F_Office,F_Sex," +
"F_Phone,F_Mobile,F_Fax,F_Web,F_Address,F_CompanyDetail) values( ");
for(int i=0;i<11;i++)
sqlBuf.append(" ?,");
sqlBuf.append("? ) ");
//要读取的xls文件路径
String rootpath="C:\\Documents and Settings\\Administrator\\桌面\\化工\\test";//命令行输入
String[] list=null;
Connection con=null;
/**
* 连接数据库
*/
//读入配置文件
DBHelper.loadConfig();
con=DBHelper.getConnection();
try{
con.setAutoCommit(false);
}catch(SQLException e)
{
e.printStackTrace();
}
logger.info("获取路径下的所有文件");
File path =new File(rootpath);
if(!path.exists())
{
if(logger.isDebugEnabled())
logger.error(rootpath+"文件不存在");
}
else
{
list=path.list();
}
for(int k=0;k<list.length;k++)
{
PreparedStatement ps=null;
try
{
int row=0;
logger.info("打开 "+list[k]+" excel文件");
Workbook book=null;
Sheet sheet=null;
try
{
book=Workbook.getWorkbook(new File(rootpath+"\\"+list[k]));
}catch(IOException e)
{
if(logger.isDebugEnabled())
logger.error("Workbook.getWorkbokk() 失败");
e.printStackTrace();
}
logger.info("应经得到了 "+list[k]+"工作表");
// System.out.println("文件已经打开");
//获得第一个工作表对象
try{
sheet=book.getSheet(0);
}catch(IndexOutOfBoundsException e)
{
e.printStackTrace();
}
logger.info("读取表 "+sheet.getName());
//取得工作表的总行数
row=sheet.getRows();
int col=sheet.getRows();
//System.out.println("工作表总行数:"+row+"列数:"+col);
logger.info("工作表总行数:"+row+"列数:"+col);
try{
ps=con.prepareStatement(sqlBuf.toString());
}catch(SQLException e)
{
e.printStackTrace();
}
//取得工作表的一行
for(int i=1;i<row;i++)
{
logger.info("导入第 "+i+" 行数据");
try{
F_UserType=100;
ps.setInt(1, F_UserType);
F_NickName=sheet.getCell(0,i).getContents();
ps.setString(2, F_NickName);
F_RealName=sheet.getCell(3,i).getContents();
ps.setString(3, F_RealName);
F_Company=sheet.getCell(2,i).getContents();
ps.setString(4, F_Company);
F_Office=sheet.getCell(6,i).getContents();
ps.setString(5, F_Office);
if(sheet.getCell(7,i).getContents().equals("先生"))
F_Sex=1;
else
F_Sex=2;
ps.setInt(6, F_Sex);
F_Phone=sheet.getCell(5,i).getContents();
ps.setString(7, F_Phone);
F_Mobile=sheet.getCell(4,i).getContents();
ps.setString(8, F_Mobile);
F_Fax=sheet.getCell(11,i).getContents();
ps.setString(9, F_Fax);
F_Web=sheet.getCell(8,i).getContents();
ps.setString(10, F_Web);
F_Address=sheet.getCell(10,i).getContents();
ps.setString(11, F_Address);
F_CompanyDetail=sheet.getCell(36,i).getContents();
ps.setString(12, F_CompanyDetail);
ps.addBatch();
ps.executeBatch();
}catch(SQLException e)
{
e.printStackTrace();
}
}//for i
try
{
//提交
con.commit();
//关闭工作表
book.close();
//关闭prepareStatement
ps.close();
}catch(SQLException e)
{
e.printStackTrace();
}
//System.out.println(list[k]+" 导入成功");
logger.info(list[k]+" 导入成功");
}catch(Exception e)
{
e.printStackTrace();
}
//return message;
}//for k
/**
* 释放资源
*/
try
{
con.close();
}catch(SQLException e)
{
e.printStackTrace();
}
}//main
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -