public void getExcel(String sheetName,String filename){
try 

Connection conn=this.getConnection();
ResultSet rs;
FileInputStream files=new FileInputStream(filename);
HSSFWorkbook workbook=new HSSFWorkbook(files);//产生工作博
HSSFSheet sheet=workbook.getSheet("sheetName");//获得工作表
int rows=sheet.getPhysicalNumberOfRows(); //得到相应的行数
for (int r = 0; r < rows; r++) 

HSSFRow row = sheet.getRow(r); 
String value="";
if (row != null) 

int cells = row.getPhysicalNumberOfCells(); //得到相应的单元格
for (short c = 0; c < cells; c++) 

HSSFCell cell = row.getCell(c); 
if (cell != null) 

switch (cell.getCellType()) 

case HSSFCell.CELL_TYPE_FORMULA : 
break; 
case HSSFCell.CELL_TYPE_NUMERIC: 
value += (long)cell.getNumericCellValue()+"\t"; 
break; 
case HSSFCell.CELL_TYPE_STRING: 
value += cell.getStringCellValue()+"\t"; 
   break; 
default: 
value +="\t"; 




System.out.println(value);

// %%%下面可以将查找到的行内容用SQL语句INSERT到oracle 


String sql="insert into empl values('"+value+"')";
Statement st=conn.createStatement();
st.execute(sql);
value="";


}catch(Exception e) 
{
System.out.println("导入数据"+e.getMessage());


} 我想将读出来的数据导入数据库,VALUE以得到,但插入库时有问题,总报没有足够值!!!应该如何处理

解决方案 »

  1.   

    String sql="insert into empl values('"+value+"')"; 
    这个怎么能这么写呢
    String sql="insert into empl(t1,t2,t3,....) values('v1','v2','v3',...)";
    这样才行啊,你把它想的太聪明了. 
      

  2.   

    我开始是那样写的,但是不行,value是读EXCEL的值EMPNO ENAME
    1 sss
    2 ddd
      

  3.   

    我是那样写的啊,但不行,有问题
    EMPNO ENAME
    1 sss
    2 ddd
    value 得到的值
      

  4.   

    我开始是那样写的,但是不行,value是读EXCEL的值 EMPNO ENAME 
    1 sss 
    2 ddd