向AnyLogic数据库导入Excel时出现JDBC驱动加载错误
问题描述
我是AnyLogic和Java的新手,原本通过内置数据库的“创建或导入表”功能将Excel数据导入AnyLogic模型数据库。现在希望通过程序化方式读取Excel数据到内置数据库,已按照AnyLogic帮助文档在main的“on start up”动作框中编写代码,但始终出现JDBC驱动加载错误:
Error during model startup: Database ("Store Data"): Couldn't load database JDBC Driver "com.googlecode.sqlsheet.Driver" (class not found) java.lang.RuntimeException: Database ("Store Data"): Couldn't load database JDBC Driver "com.googlecode.sqlsheet.Driver" (class not found) at com.anylogic.engine.connectivity.Database.<init>(Unknown Source) at com.anylogic.engine.connectivity.Database.<init>(Unknown Source) at com.anylogic.engine.connectivity.Database.<init>(Unknown Source) at testdatabase.Main.onStartup(Main.java:319) at com.anylogic.engine.Agent.d(Unknown Source) at com.anylogic.engine.Agent.start(Unknown Source) at com.anylogic.engine.Engine.start(Unknown Source) at com.anylogic.engine.ExperimentSimulation.g(Unknown Source) at com.anylogic.engine.ExperimentSimulation.run(Unknown Source) at com.anylogic.engine.ExperimentSimulation.b(Unknown Source) at com.anylogic.engine.internal.k$k.run(Unknown Source)
编写的代码如下:
ModelDatabase modelDB = getEngine().getModelDatabase(); Database myStoreFile = new Database(this, "Store Data", "Ryan_sim_data_02226.xlsx"); modelDB.importFromExternalDB(myStoreFile.getConnection(), "loc_forecast", "Internal_loc_forecast", true, false);
问题排查与解决
- 核心原因:AnyLogic程序化读取Excel时依赖的
com.googlecode.sqlsheet.Driver驱动包未被正确引入到项目中。内置导入功能会自动处理依赖,但手动编写代码时需要自行配置驱动。 - 解决步骤:
- 下载与AnyLogic版本兼容的sqlsheet驱动包(例如适配Java 8的AnyLogic可选用sqlsheet 1.1.0版本)。
- 在AnyLogic中添加外部库:点击菜单栏
File→Project Properties→Libraries,点击Add选择下载的驱动jar文件,确认后应用设置。 - 校验Excel文件路径:若文件放在项目根目录,右键文件选择
Copy Path→Relative to Project Root替换代码中的路径,避免因路径无效引发隐性问题。 - 重新运行模型:添加驱动后重启AnyLogic或重新构建项目,再启动模型验证错误是否消除。
内容的提问来源于stack exchange,提问作者fgbologah3
相关产品推荐
相关产品推荐

