2012-01-18 111 views
1

我想从Excel表插入到SQL数据库使用Java或JSP的行。最初我使用ODBC连接了两个数据库。但我想把一个excel文件作为用户的输入。为此,我创建了一个文件浏览器并上传文件。从一个文件中插入行插入数据库

  1. 如何连接上传的文件和ODBC连接?
  2. 如何查询上传的文件?

如果我使用Apache POI来解析Excel文件,我会得到列名并且也会被插入。我怎样才能避免这种情况?

a)如何插入具有特定列名的行,而不是列号?

请给我提供的代码片段

+0

循环请说明你的问题。 – DagR 2012-01-18 06:29:26

回答

0

1)我如何连接与ODBC连接上传的文件?

你将不得不编写一个服务来将excel映射到数据库,如果这就是你要求的?

+0

是的...使用DSN我们可以做到这一点...但如何将上传的文件与ODBC连接? – user1063145 2012-01-18 06:30:59

+0

您可以将excel保存到服务器上的某个位置,然后使用 Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); Connection c = DriverManager.getConnection(“jdbc:odbc:Driver = {Microsoft Excel Driver(* .xls)}; DBQ = C:/database.xls; readOnly = false”); 这样做。如果那是你问的问题?但是,如果您已经使用POI进行解析,那么在JAVA pojos中确实有数据,而您所做的只是SQL插入。我想我没有得到你的问题 – 2012-01-18 06:42:34

+0

DBQ = C:/database.xls ..这里我们选择Excel数据库? – user1063145 2012-01-18 06:51:15

0

要从excel文件中获取值,应该使用Apache POI。 而解决这一列名也被插入的问题是:

如果列名第1行中,然后从1开始的,而不是10

int i=1; 
do{ 
    { 
    HSSFRow row1 = worksheet.getRow(i);     
    HSSFCell cellA1 = row1.getCell((short) 0); 
    String a1Val = cellA1.getStringCellValue().toString(); 
    System.out.println(a1Val); 
    i++; 
    // And if you want to enter this value in sql database , write a odbc connection and insert query to sql database. 
} 
}while(a1val.!equals(""); 
+0

如何知道有多少行之前查询Excel表???因为我不能说我<12 ... – user1063145 2012-01-18 06:39:10

+0

我已编辑码。假设你有25行数据,那么这段代码将运行到第26行。而且由于它不包含任何值,它将退出循环。 – vikiiii 2012-01-18 09:21:51