我想从Excel表插入到SQL数据库使用Java或JSP的行。最初我使用ODBC连接了两个数据库。但我想把一个excel文件作为用户的输入。为此,我创建了一个文件浏览器并上传文件。从一个文件中插入行插入数据库
- 如何连接上传的文件和ODBC连接?
- 如何查询上传的文件?
如果我使用Apache POI来解析Excel文件,我会得到列名并且也会被插入。我怎样才能避免这种情况?
a)如何插入具有特定列名的行,而不是列号?
请给我提供的代码片段
我想从Excel表插入到SQL数据库使用Java或JSP的行。最初我使用ODBC连接了两个数据库。但我想把一个excel文件作为用户的输入。为此,我创建了一个文件浏览器并上传文件。从一个文件中插入行插入数据库
如果我使用Apache POI来解析Excel文件,我会得到列名并且也会被插入。我怎样才能避免这种情况?
a)如何插入具有特定列名的行,而不是列号?
请给我提供的代码片段
1)我如何连接与ODBC连接上传的文件?
你将不得不编写一个服务来将excel映射到数据库,如果这就是你要求的?
是的...使用DSN我们可以做到这一点...但如何将上传的文件与ODBC连接? – user1063145 2012-01-18 06:30:59
您可以将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
DBQ = C:/database.xls ..这里我们选择Excel数据库? – user1063145 2012-01-18 06:51:15
要从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("");
如何知道有多少行之前查询Excel表???因为我不能说我<12 ... – user1063145 2012-01-18 06:39:10
我已编辑码。假设你有25行数据,那么这段代码将运行到第26行。而且由于它不包含任何值,它将退出循环。 – vikiiii 2012-01-18 09:21:51
循环请说明你的问题。 – DagR 2012-01-18 06:29:26