You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AnyLogic参数变异实验中为Excel创建新工作表?

在AnyLogic参数变异实验中,每次运行后创建独立Excel工作表保存数据

核心解决思路

无需引入额外Java包,直接使用AnyLogic内置的Excel API(基于Apache POI封装,无需额外导入),在参数变异实验的「每次运行结束」回调中编写代码,完成新建工作表、写入数据的操作。

具体实现步骤

1. 准备Excel文件(可选,支持动态创建)

可以手动创建空Excel文件并存入模型的resources文件夹,方便路径引用;也可通过代码自动创建不存在的目标文件。

2. 配置参数变异实验的回调代码

打开参数变异实验的「高级」选项卡,找到「每次运行结束」(After each run)的代码框,写入以下代码:

// 1. 定义Excel文件路径,使用模型所在文件夹路径确保兼容性
String excelPath = getModelPath() + "/experiment_results.xlsx";

// 2. 初始化Excel对象,true表示启用写入权限
Excel excel = new Excel(excelPath, true);

// 3. 生成唯一工作表名称,用实验内置运行索引区分(runIndex从0开始,+1让编号从1起始)
String sheetName = "Run_" + (experiment.getRunIndex() + 1);

// 4. 处理工作表名称重复问题(可选,避免覆盖已有数据)
if (excel.getSheetNames().contains(sheetName)) {
    sheetName += "_" + System.currentTimeMillis(); // 追加时间戳保证唯一性
}

// 5. 创建新工作表
excel.createSheet(sheetName);

// 6. 写入数据(示例:替换为你实际收集的KPI变量)
// 写入表头
excel.setCellValue(sheetName, 0, 0, "KPI名称");
excel.setCellValue(sheetName, 0, 1, "数值");
// 写入具体KPI数据
excel.setCellValue(sheetName, 1, 0, "平均等待时间");
excel.setCellValue(sheetName, 1, 1, averageWaitTime); // 替换为你的KPI变量名
excel.setCellValue(sheetName, 2, 0, "系统吞吐量");
excel.setCellValue(sheetName, 2, 1, systemThroughput); // 替换为你的KPI变量名

// 7. 必须执行保存+关闭,否则数据不会写入文件
excel.save();
excel.close();

3. 关键细节说明

  • 运行索引使用:experiment.getRunIndex()是参数变异实验内置的运行计数器,从0开始递增,可直接用来区分不同运行,无需自行维护计数器。
  • 路径兼容性:getModelPath()返回模型所在文件夹的绝对路径,避免因相对路径导致的文件找不到问题;如果使用自定义绝对路径,Windows系统需用双反斜杠\\或正斜杠/。
  • 批量数据写入:如果运行中需要收集多条时序数据,可先在模型中定义List或DataSet存储数据,运行结束后通过循环批量写入工作表:
    // 模型全局变量:List<Double> waitTimeSeries = new ArrayList<>();
    // 运行中收集数据:waitTimeSeries.add(currentWaitTime);
    
    // 运行结束时批量写入
    excel.setCellValue(sheetName, 0, 0, "仿真时间");
    excel.setCellValue(sheetName, 0, 1, "等待时间");
    for (int i = 0; i < waitTimeSeries.size(); i++) {
        excel.setCellValue(sheetName, i+1, 0, time());
        excel.setCellValue(sheetName, i+1, 1, waitTimeSeries.get(i));
    }
    waitTimeSeries.clear(); // 清空列表准备下一次运行
    
  • 权限注意:运行模型时不要打开目标Excel文件,否则会因文件锁定导致写入失败。

内容的提问来源于stack exchange,提问作者Rui Gonçalves

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 21:42:36