⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 importxlstomysql.java

📁 java编写的将excel文档导入mysql数据库的程序
💻 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 + -