全部版块 我的主页
论坛 休闲区 十二区 灌水吧
3019 2
2016-05-18
       做CGE模型的时候遇到编程问题,需要导入的数据量很大,怎样能在GAMS中直接引用excel表格,完全不懂的新手,求大神可以详细的指教一下。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-6-8 10:59:18
提示: 作者被禁止或删除 内容自动屏蔽
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2024-6-15 09:06:06
在GAMS中直接读取Excel文件并非一个直接的过程,因为GAMS本身并不直接支持与Excel的交互。但是,你可以通过以下几种方式来实现这一需求:

### 方法1:使用GDX文件

1. **先将Excel数据转换为CSV或TXT格式**。
2. 使用Python或者R等脚本语言读取这些CSV/TXT数据,并将其保存为GAMS GDX格式的文件。GDX是GAMS的数据交换格式,它可以被GAMS直接读取。

#### Python示例代码:

```python
import pandas as pd
from gams import *

data = pd.read_csv('your_file.csv', index_col=0)  # 假设你有一个名为'your_file.csv'的文件

db = GamsDatabase()
for col in data.columns:
    param = db.add_parameter_dc(col, list(data.index))
    for i in data.index:
        param.add_record(i).value = float(data.loc[i][col])

# 保存到GDX格式
gdx_file_name = 'your_data.gdx'
db.export(gdx_file_name)
```

### 方法2:使用外部程序进行数据转换

你可以在GAMS中调用一个外部程序(例如Python脚本)来将Excel文件转换为GDX或文本文件。

在GAMS中,你可以这样写:

```gams
$onecho > mypythonscript.py
import pandas as pd
from gams import *
data = pd.read_excel('your_file.xlsx')
db = GamsDatabase()
for col in data.columns:
    param = db.add_parameter_dc(col, list(data.index))
    for i in data.index:
        param.add_record(i).value = float(data.loc[i][col])
gdx_file_name = 'your_data.gdx'
db.export(gdx_file_name)
$offecho
$call python mypythonscript.py  # 调用Python脚本处理数据

* 然后在GAMS中读取GDX文件或文本文件
```

### 方法3:使用GAMS/Excel接口(GAMSXLS)

GAMS提供了一个名为`GAMSXLS`的工具,可以用来直接从Excel表格中导入数据。但是,请注意这需要额外购买。

总的来说,在GAMS中处理来自Excel的数据主要涉及到两步:
- **第一步**是将数据转换为GAMS可以直接读取的格式(如GDX或文本)。
- **第二步**是在GAMS模型中加载这些数据。

希望上述方法能够帮到你!如果你对其中任何一个步骤有疑问,欢迎进一步提问。

此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群