【问题标题】:data of GAMS in deffrent sheet不同工作表中的 GAMS 数据
【发布时间】:2018-11-04 07:34:27
【问题描述】:

我有2个Set和1个参数,我想把这些数据导出到excel中

 set
     j/1*200/
     E(i,j)
     v(i)
     a(i);
     alias(i,j);

我希望'v' 是 Sheet1,'a' 在 sheet2 中,'e' 在 sheet3 中。 我不知道我的集合的 rng。

哪个命令有用?

我的尝试不正确:

我的尝试

execute_unload "result.gdx"  v  a   e
execute 'gdxxrw.exe  result3.gdx o=result3.xlsx par=v  rng=Sheet1'
execute 'gdxxrw.exe  result3.gdx o=result3.xlsx par=a  rng=Sheet2'
execute 'gdxxrw.exe  result3.gdx o=result3.xlsx par=e  rng=Sheet3 '

【问题讨论】:

    标签: gams-math


    【解决方案1】:

    我认为你需要改变两件事:

    • 您将 v、a、e 声明为集合,但尝试将它们作为参数写入 Excel。您应该将“par=v”(等)更改为“set=v”。
    • 如果只想指定范围的工作表名称,则需要以“!”结尾,因此将“rng=Sheet1”更改为“rng=Sheet1!” (见这里:https://www.gams.com/latest/docs/T_GDXXRW.html#GDXXRW_RANGES)。

    所以,总而言之,你应该没问题,使用这个:

     execute 'gdxxrw.exe  result3.gdx o=result3.xlsx set=v  rng=Sheet1!'
     execute 'gdxxrw.exe  result3.gdx o=result3.xlsx set=a  rng=Sheet2!'
     execute 'gdxxrw.exe  result3.gdx o=result3.xlsx set=e  rng=Sheet3!'
    

    请注意,您实际上也可以一次调用:

     execute 'gdxxrw.exe  result3.gdx o=result3.xlsx set=v  rng=Sheet1! set=a  rng=Sheet2! set=e  rng=Sheet3!'
    

    最后一点:在 GAMS 中使用“执行”时,在调用后立即检查错误级别通常很有用。

    【讨论】:

    • 是的!我真的很感谢你。我不知道我可以用一个电话。这很有趣。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-15
    • 1970-01-01
    相关资源
    最近更新 更多