您的位置:首页 > 数据库

在jxl.jar包下把excel内容导入到数据库

2009-03-09 21:20 399 查看
package mes;

import java.io.FileInputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.*;
import java.sql.*;
import jxl.Workbook;

import jxl.Sheet;
import jxl.Cell;
//本实例为在jxl.jar包下开发的,下载jxl.jar包并导入到自己的工程中
// 把excel 导入到数据库中Connection con为连接数据库的对象
public class ExceltoResult {
public static synchronized void createExcelFile(Connection con,String name) throws Exception {
try{
//name为文件名 直接从本地文件创建Workbook一旦创建了Workbook,我们就可以通过它来访问Excel Sheet(术语:工作表)

InputStream is = new FileInputStream(name);
   //从输入流创建Workbook
jxl.Workbook rwb = Workbook.getWorkbook(is);
//获取第一张Sheet表一旦得到了Sheet,我们就可以通过它来访问Excel Cell(术语:单元格)
Sheet rs1 = rwb.getSheet(0);

sheettoResult(con,rs1);
 //关闭Excel工作薄对象
rwb.close();
}
catch(Exception e){
e.getStackTrace();
}

}
//函数为获取单元格的内容
private static void sheettoResult(Connection con,Sheet sheet)
throws Exception {
 //因为第一行是列名,所以内容从第二行开始取。(列名最好对应数据库中相关的字段)
int row=1;
//获得excel中的列的个数
int columns=sheet.getColumns();
//获得单元格的行数
int c=sheet.getRows();

Statement stm=con.createStatement();
while(row<=c){
 //用列表存放相关的内容
List list=new LinkedList();
//一次按列取相关的值
for(int i=0;i<columns;i++){
 //获得单元格对象 下面是第row行,第i列单元格
Cell cel=sheet.getCell(i,row);
 //获得单元格中的内容。
String strc= cel.getContents();

list.add(strc);

}
相关的sql语句。按自己的需求写
String sql="insert into t_tg_gatherRecord values(seq_tg_GatherRecord.nextval,"+list.get(0)+","
+"'"+list.get(1)+"',"+list.get(2)+",sysdate,'"+list.get(3)+"')";

stm.executeUpdate(sql);
list.clear();
row++;

}
stm.close();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: