JAVA Excel数据批量导入到SQL数据库

    今天刚好需要批量将Excel里的数据导入到SQL Server,本来打算用Genero写的,发现官方驱动包找不到SQL Server 2012的驱动,我的天啊,无解!只好用JAVA来写!JAVA通过加载JDBC驱动轻松搞定!除了引用sqljdbc4.jar 库外,还需要引用另外一个库 jxl.jar。这两个库很容易找到下载。

下面直接看源码部分吧,功能很简单,但是需要注意一点:jxl不能处理.xlsx结尾的Excel档,编译会提示发现不了OLE对象的错误。解决的办法是打开.xlsx文档,另存为Excel97-2003 后缀.xls  。这个问题一开始耽误了我不少时间。

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;

import javax.swing.JOptionPane;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;


public class Test {

	public static void main(String[] args) throws SQLException {
		Object[] obj = null;
		ArrayList list = new ArrayList();  //定义ArrayList,包含数组类型
		String filePath = "C:/Users/xxx68099/Desktop/User.list.xls";  //定义Excel文件路径
		InputStream is = null;
		Workbook rwb = null;
		try {
			is = new FileInputStream(filePath); //定义文本输入流
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}

		try {
			rwb = Workbook.getWorkbook(is); //打开Workbook
		} catch (BiffException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}

		Sheet sht = rwb.getSheet("Sheet1"); //打开Workbook中Sheet1
		int col = sht.getColumns();  //获得Excel列
		int row = sht.getRows();  //获得Excel行
		Cell c1 = null;
		
		for(int i=0; i




你可能感兴趣的:(Java)