我必须设计一个用于访问Excel应用程序数据库的应用程序。我的问题是我必须为每次交易创建多个连接,如果我错过任何关闭的交易,则不会更新Excel。
我想设计能够访问Excel的模式。任何人都可以帮助我设计一种常见的模式,而我不会出现问题。我想要这样的东西,但是我们无法使用它来访问Excel。
预先感谢!
我在实用程序类中有这种方法
static ResultSet getExcelData(String filePath,String sqlQuery){
ResultSet rs=null;
try{
conn = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ="+filePath+";READONLY=false");
stmt= conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
rs=stmt.executeQuery( sqlQuery );
}catch (Exception e) {
e.printStackTrace();
return null;
// TODO: handle exception
}finally{
}
return rs;
}
我是这样称呼它的
ResultSet rs=JdbcUtil.getExcelData("D:\AB_demo\AB_demo\test.xls", "Select max(int(ID)) from [MAIN$] where HEADER_IND is not Null AND int(ID)<"+excelId);
int databaseId = 0;
if(rs.next())
{
databaseId=rs.getInt(1);
}
ResultSet rs1=JdbcUtil.getExcelData("D:\AB_demo\AB_demo\test.xls", "SELECT * from [MAIN$] where id= '"+databaseId+"'or id='"+excelId+"'");
我两次调用此方法,然后使用
更新Excel文件stmt.executeUpdate(sql);
它返回整数1,但没有在Excel中反映。当我使用Process Explorer时,文件仍在使用中。我需要一种设计模式或来克服他的问题。
我认为更多正确的方法是从数据库生成excel文件。否则,您必须创建服务器端以确保交易和连接控制。您的任务的主要问题 - excel是
- 不是数据库
- 不是网络数据库换句话说,您必须使用其他工具,其他用于任务的方法。