将xlsx数据插入oracle datababe

时间:2017-05-25 05:52:01

标签: java oracle

我想将xlsx数据存储到oracle数据库中,我编写代码使用java读取它但是,我无法将它们存储到数据库中,以及如何使用prepareStatement。 这是我的代码阅读

FileInputStream fis = new FileInputStream(
  new File("C:\\Users\\wecme\\Desktop\\Writesheet.xlsx"));
  XSSFWorkbook workbook = new XSSFWorkbook(fis);
  XSSFSheet spreadsheet = workbook.getSheetAt(0);
  Iterator < Row > rowIterator = spreadsheet.iterator();
  while (rowIterator.hasNext()) 
  {
     row = (XSSFRow) rowIterator.next();
     Iterator < Cell > cellIterator = row.cellIterator();
     while ( cellIterator.hasNext()) 
     {
        Cell cell = cellIterator.next();
        switch (cell.getCellType()) 
        { 
           case Cell.CELL_TYPE_NUMERIC:
           System.out.print( 
           cell.getNumericCellValue() + " \t\t " );
           break;
           case Cell.CELL_TYPE_STRING:
            String s=   cell.getStringCellValue();

            System.out.print(s+ " \t\t ");

           break;  
        }
     }
     System.out.println();
  }
  fis.close();

这里是控制台的输出:

EMP ID       EMP NAME        DESIGNATION         
tp01         Gopal       Technical Manager       
tp02         Manisha         Proof Reader    
tp03         Masthan         Technical Writer    
tp04         Satish          Technical Writer    
tp05         Krishna         Technical Writer   

我想将它们存储在数据库中,任何人都可以帮助我。 我为此写了jdbc,但我无法解决它

PreparedStatement ps=cn.prepareStatement("insert into table1 (empId,empName,Designatation) values(?,?,?)");

  while (rowIterator.hasNext()) 
  {
     row = (XSSFRow) rowIterator.next();
     Iterator < Cell > cellIterator = row.cellIterator();
     while ( cellIterator.hasNext()) 
     {
        Cell cell = cellIterator.next();
        //System.out.println(cell);
       String sss=cell.toString();
       }
     }

如何指定像ps.setString(index,sss)这样的精确索引; 请帮帮我。

1 个答案:

答案 0 :(得分:-1)

我必须同意11thdimension - 如果你想从excel文件中读取数据并将其加载到db中,那么你可以使用一些工具(也许是从Excel导出数据作为CSV文件),或者你可以为它编写代码 - 我认为您在问题中提供给我们的代码是一个很好的起点。

如果你想将整个xlsx文件存储在某些列中(例如BLOB类型),我认为这对你来说不是一个好习惯(对我而言,这是一个更好的解决方案,只记住db中的url或文件路径)应该有一些流,你读取整个文件,并在该列中将其写为字节。在这种情况下,请查看此主题:

Similar question

问题不是那么明确,而且还不够具体,所以这个答案太笼统了。