данные ГАМС в ведомом листе - PullRequest
0 голосов
/ 04 ноября 2018

У меня есть 2 набора и один параметр, я хочу экспортировать эти данные в Excel

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

Я хочу, чтобы 'v' было Sheet1, 'a' в sheet2 и 'e' в sheet3. Я не знаю суть моего сета.

какая команда полезна?

моя попытка была неверной:

моя попытка

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 '

1 Ответ

0 голосов
/ 04 ноября 2018

Я думаю, вам нужно изменить две вещи:

  • Вы объявили 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!'

И последнее замечание: при использовании «execute» в GAMS часто бывает полезно проверить errorLevel сразу после вызова.

...