📄 testexcel.java
字号:
package Xl;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
public class TestExcel {
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成方法存根
Cell cell = null;
String sql = null;
String insertDate = "";
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:lsd";
Connection con=DriverManager.getConnection(url);
// 使用事务。不用也无所谓
con.setAutoCommit(false);
Statement smt = con.createStatement();
// if (smt != null) System.out.println("smt is ok!");
// 加载excel文件
InputStream fs = new FileInputStream("E://j041.xls");
// 得到 workbook
Workbook wb = Workbook.getWorkbook(fs);
/*
* 取得sheet,如果你的workbook里有多个sheet 可以利用 wb.getSheets()方法来得到所有的。
* getSheets() 方法返回 Sheet[] 数组 然后利用数组来操作。就是多次循环的事。
*/
Sheet sh = wb.getSheet(0);
// 利用 sheet 的名字做表名创建数据库表。你可以自己规定
sql = "CREATE TABLE table_A "
+ " ("
+ "学号 varchar(10),班级 varchar(10),姓名 varchar(5),性别 varchar(5),出生年月日 varchar(10)," +
"宿舍号 varchar(10),手机 varchar(15),QQ varchar(20),电子邮箱 varchar(50));";
smt.execute(sql);
/*
* 开始循环,取得 cell 里的内容,这里都是按String来取的 为了省事,具体你自己可以按实际类型来取。或者都按
* String来取。然后根据你需要强制转换一下。
*/
for (int i = 1; i < sh.getRows(); i++) {
for (int j = 0; j < sh.getColumns(); j++) {
cell = sh.getCell(j, i);
if (j != sh.getColumns() - 1)
// System.out.print(cell.getContents() + ",");
insertDate += "'" + cell.getContents() + "',";
else
insertDate += "'" + cell.getContents() + "'";
// System.out.print(cell.getContents());
}
/*
* 利用循环取每一行的数据。然后开始构造SQL语句。你可以
* 用自己的方法。这个方法我觉得比较偷懒。
*/
sql = "INSERT INTO table_A(学号,班级,姓名,性别,出生年月日,宿舍号,手机,QQ,电子邮箱)"
+ " VALUES(" + insertDate + ");";
smt.execute(sql);
/*这里把 insertDate设置为空。不然 insertData下次
* 还会叠加上次的内容。也就失去了我们的目的。
*/
insertDate = "";
}
/*
* 提交事务
*/
con.commit();
con.close();//关闭数据库连接
wb.close();//关闭打开的文件,切记。切记
System.out.println("OK!");
// System.out.println(insertDate);
// start sql;
} catch (IOException ex) {
ex.printStackTrace();
} catch (BiffException ex) {
ex.printStackTrace();
}
catch (ClassNotFoundException ex) {
System.out.println("class not found");
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -