不同的 GAMS 数据 sheet
data of GAMS in deffrent sheet
我有2个Set和1个参数,我想把这些数据导出到excel
set
j/1*200/
E(i,j)
v(i)
a(i);
alias(i,j);
我想让 'v' 在工作表 1 中,'a' 在工作表 2 中,'e' 在工作表 3 中。
我不知道我这组的 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 '
我认为你需要改变两件事:
- 您将 v、a、e 声明为集合,但试图将它们作为参数写入 Excel。您应该将 'par=v' (等)更改为 'set=v'.
- 如果您只想指定范围的 sheet 名称,它需要以 '!' 结尾,因此将 '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 中使用 'execute' 时,在调用后立即检查 errorLevel 通常很有用。
我有2个Set和1个参数,我想把这些数据导出到excel
set
j/1*200/
E(i,j)
v(i)
a(i);
alias(i,j);
我想让 'v' 在工作表 1 中,'a' 在工作表 2 中,'e' 在工作表 3 中。 我不知道我这组的 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 '
我认为你需要改变两件事:
- 您将 v、a、e 声明为集合,但试图将它们作为参数写入 Excel。您应该将 'par=v' (等)更改为 'set=v'.
- 如果您只想指定范围的 sheet 名称,它需要以 '!' 结尾,因此将 '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 中使用 'execute' 时,在调用后立即检查 errorLevel 通常很有用。